Spring Cloud Gateway 中 JWT 鉴权过滤器的执行顺序由 Ordered 接口控制,数值越小优先级越高,行业数据显示合理的网关鉴权机制能够拦截超过 15% 的非法请求(截至 2025 年 11 月 29 日)。
原因分析
在微服务架构中,过滤器执行顺序直接影响鉴权效果。根据 2026 年 2 月 20 日的资料,Gateway 过滤器分为 Pre 类型和 Post 类型:Pre 类型在路由处理之前执行(请求转发到后端服务之前),可做鉴权、限流等;Post 类型在请求执行完成后、结果返回给客户端之前执行。过滤器执行流程为:Request → RoutePredicate(匹配路由) → GatewayFilter(改请求/鉴权/限流) → 转发到下游服务。实现 GlobalFilter 和 Ordered 接口时,Ordered 类的数值越小执行顺序越靠前(撰于 2024 年 4 月 8 日)。
解决方案:配置 JWT 鉴权过滤器顺序
步骤一:引入依赖
在 pom.xml 中添加 Spring Cloud Gateway 依赖,版本建议使用 3.0.7:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><version>3.0.7</version></dependency>
注意:springcloud gateway 路由相关和引入 gateway 依赖和 spring-boot-starter-web 依赖存在冲突问题,需避免同时引入(资料日期为 2024 年 6 月 28 日)。
步骤二:创建全局过滤器
新建自定义 filter 类,需要实现 GlobalFilter 和 Ordered 接口:
@Component@Slf4jpublic class MdxAuthFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { // JWT 验证逻辑 log.info("=========================请求进入 filter====================="); return chain.filter(exchange); } @Override public int getOrder() { return -100; // 数值越小,优先等级越高 }}其中 GlobalFilter 是 gateway 的全局过滤类,Ordered 类控制过滤器的执行级别(撰于 2024 年 4 月 8 日)。
步骤三:配置 application.yml
在配置文件中设置路由和过滤器顺序,order 数值越小优先等级越高:
spring: cloud: gateway: routes: - id: service-order uri: lb://service-order predicates: - Path=/api/order/** order: 0 # 数值越小,优先等级越高(2025 年 9 月 3 日)
配置路由时要注意,配置越靠前就会优先被匹配,尽量避免路径前缀的重复,如果重复不可避免,要配置路由的优先级 order。
注意事项
1. 依赖冲突问题:springcloud gateway 路由相关和引入 gateway 依赖和 spring-boot-starter-web 依赖冲突,需先排查依赖冲突问题(资料日期为 2024 年 6 月 28 日)。
2. 过滤器类型区分:Pre 类型过滤器在请求转发到后端服务之前执行,适合做鉴权、限流;Post 类型过滤器在请求执行完成后执行,适合做响应处理(2026 年 2 月 20 日的资料)。
3. 跨域配置:如需支持跨域,可在全局级别配置 CORS 策略:
spring: cloud: gateway: globalcors: cors-configurations: '[/**]': allowedOrigins: "*" allowedMethods: "*"(来自 2024 年 5 月 11 日的资料)
4. 动态路由:可通过 Nacos 配置中心实现动态路由,配置 data-id 为 gateway-routes,group 为 shop,namespace 为 mdx(撰于 2024 年 4 月 8 日)。
参考来源
来源:阿里云开发者社区 - SpringCloud Gateway 基于自定义全局过滤器实现 JWT 权限验证
来源:Spring Cloud 微服务网关统一鉴权实战 - Gateway 过滤器 JWT 令牌校验详解(截至 2025 年 11 月 29 日)
来源:Spring Cloud Gateway 全解析 - 路由配置、断言规则与过滤器实战指南(2025 年 9 月 3 日)
来源:Spring Cloud Gateway 配置指南含动态路由与过滤器实现 - 阿里云开发者社区(资料日期为 2024 年 6 月 28 日)