当前位置: 首页 > article >正文

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

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

1、内置的匹配检测器

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

2、定制示例

  • Path 检测器定制示例(配置例:Path=/demo/**
@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());
        }
    }
}

http://www.kler.cn/a/519279.html

相关文章:

  • 笔灵ai写作技术浅析(二):自然语言处理
  • 正则表达式基础与应用
  • 国产编辑器EverEdit - 输出窗口
  • chrome源码剖析—UI架构消息机制
  • Android GLSurfaceView 覆盖其它控件问题 (RK平台)
  • 数据结构:log-structed结构MemTableSSTable
  • 集群IB网络扫描
  • 使用 Docker 运行 Oracle Database 23ai Free 容器镜像并配置密码与数据持久化
  • 【架构面试】二、消息队列和MySQL和Redis
  • 批量提取多个 Excel 文件内指定单元格的数据
  • linux如何定位外部攻击并进行防御处理
  • Visual Studio Code修改terminal字体
  • 【pytorch】norm的使用
  • 9【如何面对他人学习和生活中的刁难】
  • 破解浏览器渲染“死锁”:CSS与JS如何影响页面加载速度?
  • GCC之编译(8)AR打包命令
  • 【初阶数据结构】逆流的回环链桥:双链表
  • 【单链表算法实战】解锁数据结构核心谜题——相交链表
  • 解决使用Selenium时ChromeDriver版本不匹配问题
  • [b01lers2020]Life on Mars1
  • 计算机视觉:撕裂时空的视觉算法革命狂潮
  • 落地级分类模型训练框架搭建(1):resnet18/50和mobilenetv2在CIFAR10上测试结果
  • 高级java每日一道面试题-2025年01月24日-框架篇[SpringBoot篇]-如何理解 Spring Boot 中的 Starters(启动器) ?
  • three.js+WebGL踩坑经验合集(4.1):THREE.Line2的射线检测问题(注意本篇说的是Line2,同样也不是阈值方面的问题)
  • 多模态论文笔记——ViViT
  • OpenAI-Edge-TTS的使用