Spring Cloud Gateway 整合 JWT 鉴权过滤器怎么配置顺序?

文章导读
Spring Cloud Gateway 中 JWT 鉴权过滤器的执行顺序由 Ordered 接口控制,数值越小优先级越高,行业数据显示合理的网关鉴权机制能够拦截超过 15% 的非法请求(截至 2025 年 11 月 29 日)。
📋 目录
  1. 原因分析
  2. 解决方案:配置 JWT 鉴权过滤器顺序
  3. 注意事项
  4. 参考来源
A A

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 日)。

Spring Cloud Gateway 整合 JWT 鉴权过滤器怎么配置顺序?

步骤三:配置 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 整合 JWT 鉴权过滤器怎么配置顺序?
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 日)