Unable to find GatewayFilterFactory with name TokenRelay

目录

问题分析

Spring Cloud Gateway 网关作为代理资源服务器,需要将 JWT 传递给下游资源服务器,下面是网关的配置

yaml 复制代码
spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true # 启用服务发现
          lower-case-service-id: true

      default-filters:
      	# 中继令牌
        - TokenRelay
        # 移除Cookie请求头,避免cookie透传到后端服务
        - RemoveRequestHeader=Cookie

TokenRelay 激活 TokenRelayGatewayFilterFactory,将令牌中继传递给下游资源服务,例如系统服务 (youlai-system)

但是项目启动中会报错:

复制代码
Unable to find GatewayFilterFactory with name TokenRelay

解决方案

参考链接:Spring Gateway and Auth0: IllegalArgumentException: Unable to find GatewayFilterFactory with name TokenRelay

TokenRelay 过滤器的工作原理是,当一个请求到达网关时,它会从请求中提取 JWT,然后将其添加到转发到资源服务器的请求头中。这样,资源服务器就可以从请求头中提取 JWT,并使用它来验证用户的身份和权限。

spring-boot-starter-oauth2-client 依赖包提供了 OAuth2 客户端的功能,包括处理和转发 JWT。在 Spring Cloud Gateway 中,它可以与 TokenRelay 过滤器一起工作,安全地处理和转发 JWT。

所以添加 oauth2-client 依赖即可

xml 复制代码
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-oauth2-client</artifactId>
 </dependency>

参考文档

Spring Cloud Gateway 官方文档: The TokenRelay GatewayFilter Factory

开源项目

微服务商城项目

Github Gitee
开源组织 有来开源组织 有来开源组织
后端 youlai-mall 📖 youlai-mall 📖
前端 mall-admin🌎 mall-admin 🌎
移动端 mall-app 🌎 mall-app 🌎

前后端分离项目

Github Gitee
开源组织 有来开源组织 有来开源组织
后端 youlai-boot 📖 youlai-boot 📖
前端 vue3-element-admin 🌎 vue3-element-admin 🌎
相关推荐
咖啡不甜不好喝3 小时前
SpringCloud之OpenFeign
spring cloud·openfeign
黄俊懿7 小时前
【深入理解SpringCloud微服务】Spring-Security作用与原理解析
java·后端·安全·spring·spring cloud·微服务·架构师
JH30737 小时前
Gateway 中能写 Servlet Filter 吗?
servlet·gateway
叫致寒吧12 小时前
Dockerfile
java·spring cloud·eureka
悟空码字14 小时前
从零到一搭建SpringCloud微服务,一场代码世界的“分家”大戏
java·后端·spring cloud
黄俊懿15 小时前
【深入理解SpringCloud微服务】Gateway源码解析
java·后端·spring·spring cloud·微服务·gateway·架构师
刘个Java17 小时前
手搓遥控器通过上云api执行航线
java·redis·spring cloud·docker
东东的脑洞17 小时前
【面试突击】Spring Security + OAuth2 密码模式实战:Gateway 作为网关与资源服务器,Auth 作为认证服务器(完整认证链路解析)
spring·面试·gateway
没有bug.的程序员17 小时前
Ribbon vs LoadBalancer 深度解析
jvm·后端·spring cloud·微服务·ribbon·架构·gc调优
黄俊懿1 天前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——全局事务的回滚
java·后端·spring·spring cloud·微服务·架构·架构师