private RuleData defaultMatchRule(final ServerWebExchange exchange, final List<RuleData> rules, final String path) {
        Pair<Boolean, RuleData> matchRulePair = matchRule(exchange, rules);
        RuleData ruleData = matchRulePair.getRight();
        if (Objects.nonNull(ruleData)) {
            LOG.info("{} rule match path from default strategy", named());
            // cache rule data
            if (matchRulePair.getLeft()) {
                cacheRuleData(path, ruleData);
            }
            return ruleData;
        } else {
            // if not match rule, cache empty rule data.
            if (matchRulePair.getLeft()) {
                RuleData emptyRuleData = RuleData.builder().pluginName(named()).build();
                cacheRuleData(path, emptyRuleData);
            }
            return null;
        }
    }
Handle rule if null mono.

@param pluginName the plugin name
@param exchange the exchange
@param chain the chain
@return the mono
shenyu-plugin/shenyu-plugin-base/src/main/java/org/apache/shenyu/plugin/base/AbstractShenyuPlugin.java