Solon Cloud Gateway 开发:Route 的匹配检测器及定制

RoutePredicateFactory 是一组专为路由匹配检测设计的接口,以完成匹配检测处理。对应 predicates 配置。

1、内置的匹配检测器

匹配检测器工厂 本置前缀 说明与示例
AfterPredicateFactory After= After 时间检测器,ZonedDateTime 格式 (After=2017-01-20T17:42:47.789-07:00[America/Denver])
BeforePredicateFactory Before= After 时间检测器,ZonedDateTime 格式 (Before=2017-01-20T17:42:47.789-07:00[America/Denver])
CookiePredicateFactory Cookie= Cookie 检测器 (Cookie=token)(Cookie=token, ^user.)
HeaderPredicateFactory Header= Header 检测器 (Header=token)(Header=token, ^user.)
MethodPredicateFactory Method= Method 检测器 (Method=GET,POST)
PathPredicateFactory Path= Path 检测器(支持多路径匹配,以","号隔开) (Path=/demo/**) ,(Path=/demo/**,/hello/**)

2、定制示例

  • Path 检测器定制示例(配置例:Path=/demo/**
java 复制代码
@Component
public class PathPredicateFactory implements RoutePredicateFactory {
    @Override
    public String prefix() {
        return "Path";
    }

    @Override
    public ExPredicate create(String config) {
        return new PathPredicate(config);
    }

    public static class PathPredicate implements ExPredicate {
        private PathRule rule;

        /**
         * @param config (Path=/demo/**)
         * */
        public PathPredicate(String config) {
            if (Utils.isBlank(config)) {
                throw new IllegalArgumentException("PathPredicate config cannot be blank");
            }

            rule = new PathRule();
            rule.include(config);
        }

        @Override
        public boolean test(ExContext ctx) {
            return rule.test(ctx.rawPath());
        }
    }
}
相关推荐
全栈凯哥31 分钟前
Java详解LeetCode 热题 100(23):LeetCode 206. 反转链表(Reverse Linked List)详解
java·算法·leetcode·链表
小葡萄202531 分钟前
黑马程序员C++核心编程笔记--4 类和对象--多态
java·c++·笔记
Java之路行者41 分钟前
SpringBoot+XXL-JOB:高效定时任务管理
java·spring boot·后端·spring cloud
xrz2771 小时前
JAVA获取ES连接并查询所有数据
java·elasticsearch
无妄-20241 小时前
“刹车思维”:慢,是为了更快
java·经验分享
玉~你还好吗1 小时前
【FreeRTOS#1】多任务处理&任务调度器&任务状态
java·开发语言
Yusei_05231 小时前
C++ 模版复习
android·java·c++
ytttr8731 小时前
k8s的出现解决了java并发编程胡问题了
java·容器·kubernetes
纪元A梦2 小时前
分布式拜占庭容错算法——权益证明(PoS)算法详解
java·分布式·算法
老友@2 小时前
Spring Boot 应用中实现配置文件敏感信息加密解密方案
java·spring boot·后端·数据安全·加密·配置文件