源码位置
spring-cloud-gateway-core-2.0.1.RELEASE-sources.jar!/org/springframework/cloud/gateway/handler/predicate/PathRoutePredicateFactory.java

过滤方法

    @Overridepublic Predicate<ServerWebExchange> apply(Config config) {synchronized (this.pathPatternParser) {//仅在第一次调用路由时执行,将pattern字符串转PathPattern对象config.pathPattern = this.pathPatternParser.parse(config.pattern);}return exchange -> {PathContainer path = parsePath(exchange.getRequest().getURI().getPath());//path(url)转PathContainer对象
//在此位置设置断点,每次走到需要predicate.Path过滤的路径都会进入到这里boolean match = config.pathPattern.matches(path);//路径表达式匹配判断traceMatch("Pattern", config.pathPattern.getPatternString(), path, match);if (match) {PathMatchInfo uriTemplateVariables = config.pathPattern.matchAndExtract(path);exchange.getAttributes().put(URI_TEMPLATE_VARIABLES_ATTRIBUTE, uriTemplateVariables);return true;} else {return false;}};}

手动测试表达式效果
new PathPatternParser().parse("/sys*/**").matches(path)

匹配/sys-aaa/sadf、/sysf3s/sa等格式路径

进入逻辑:
onNext:reactor-core-3.1.10.RELEASE-sources.jar!/reactor/core/publisher/MonoFilterWhen.java
从这里进入gateway
lookupRoute:spring-cloud-gateway-core-2.0.1.RELEASE-sources.jar!/org/springframework/cloud/gateway/handler/RoutePredicateHandlerMapping.java
进入
toAsyncPredicate:spring-cloud-gateway-core-2.0.1.RELEASE-sources.jar!/org/springframework/cloud/gateway/support/ServerWebExchangeUtils.java
最后进入
lambda$apply$:spring-cloud-gateway-core-2.0.1.RELEASE-sources.jar!/org/springframework/cloud/gateway/handler/predicate/PathRoutePredicateFactory.java

Spring Cloud Gateway Predicate.Path过滤分析相关推荐

  1. Spring Cloud Gateway 过滤器执行顺序原理分析

    过滤器类型 GlobalFilter:全局过滤器,对所有路由生效.通过实现GlobalFilter接口创建 GatewayFilter:网关过滤器,也可以说是局部过滤器.自定义过滤器,只对配置了此过滤 ...

  2. spring cloud gateway 深入了解 - Predicate

    文章来源 spring cloud gateway 通过谓词(Predicate)来匹配来自用户的请求 为了方便,使用postman测试不同的谓词的效果 路径谓词(Predicate)-- 最简单的谓 ...

  3. Spring Cloud Gateway 源码解析(3) —— Predicate

    目录 RoutePredicateFactory GatewayPredicate AfterRoutePredicateFactory RoutePredicateHandlerMapping Fi ...

  4. Spring Cloud Gateway远程代码执行CVE-2022-22947漏洞分析及复现

    0x01 漏洞描述 Spring Cloud Gateway 是基于 Spring Framework 和 Spring Boot 构建的 API 网关,它旨在为微服务架构提供一种简单.有效.统一的 ...

  5. 网关Spring Cloud Gateway科普

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"获取公众号专属群聊入口 欢迎跳转到本文的原文链接:https://honeypp ...

  6. Spring Cloud Gateway一次请求调用源码解析

    简介: 最近通过深入学习Spring Cloud Gateway发现这个框架的架构设计非常简单.有效,很多组件的设计都非常值得学习,本文就Spring Cloud Gateway做一个简单的介绍,以及 ...

  7. ws配置 zuul_微服务网关 Spring Cloud Gateway

    1.  为什么是Spring Cloud Gateway 一句话,Spring Cloud已经放弃Netflix Zuul了.现在Spring Cloud中引用的还是Zuul 1.x版本,而这个版本是 ...

  8. Spring Cloud Gateway源码系列之路由配置加载过程

    当前章节主要是讲解配置文件中定义的路由配置被gateway加载,同时转为可以直接操作的路由对象 引入pom坐标 <dependency><groupId>org.springf ...

  9. 第五章 微服务网关Spring Cloud Gateway

    5.1 微服务网关简介 第三章我们介绍了通过Spring Cloud LoadBalancer实现了微服务之间的调⽤和负载均衡,以及使⽤Spring Cloud OpenFeign声明式调⽤,那我们的 ...

最新文章

  1. 什么是跨域?怎么解决跨域问题?
  2. R语言获得所有Aesthetics(美学映射)参数:使用长表输出、使用宽表输出
  3. OpenStack 实现技术分解 (5) 应用开发 — 使用 OpenStackClients 进行二次开发
  4. python绘制多个条形图_python – 在Matplotlib中绘制多个直方图 – 颜色或并排条形图...
  5. 使用tcpdump查看HTTP请求响应 详细信息 数据
  6. Linux安装技巧--安装Uuntu与windows8/10共存
  7. python爬虫淘宝评论_Python爬取淘宝店铺和评论
  8. android 换行乱_Android自动换行布局
  9. 仅从设计和原理等技术角度看,Windows和Linux哪个系统更先进?
  10. 为什么说吉利博越定义了智能SUV
  11. 硬件知识:网线的分类知识笔记,看完你就懂了!
  12. JavaScript——DOM文档
  13. 关于《2012年我的十大工程》双季进展情况报告总结
  14. 手机uc打开本地html,(涨知识)关于手机UC浏览器折叠网页内容解决办法
  15. Tomcat修行之路-7.Tomcat-Mapper组件机制以及请求处理机制
  16. 2022-2027年中国分散染料行业市场全景评估及发展战略规划报告
  17. Javase day06_汇总
  18. 计算机组成原理:2. 计算机的发展及应用
  19. 大学C语言系统作业,南昌大学作业答疑系统c语言答案
  20. 新手福音!最全面的易懂CSS总结,一篇博文让你了解CSS,动一动小手收藏吧

热门文章

  1. 工作169:vue项目报错[Vue warn]: Property “visible“ must be accessed with “$data.visible“ because properties
  2. 前端学习(2515):父向子传值
  3. “约见”面试官系列之常见面试题之第七十五篇之vue中如何使当前css起作用(建议收藏)
  4. “约见”面试官系列之常见面试题之第七十四篇之v-if和v-for优先级(建议收藏)
  5. 前端学习(2026)vue之电商管理系统电商系统之实现分页功能
  6. 前端学习(1697):前端系列javascript之原型
  7. 前端学习(476):web前端行业介绍
  8. spring学习(37):注入list类型
  9. html:(35):缩进和行高
  10. sql 链接到oracle数据库,通过MSSQL连接服务器连接至Oracle数据库