当前位置:首页 > 编程笔记 > 正文
已解决

Unable to find GatewayFilterFactory with name TokenRelay

来自网友在路上 163863提问 提问时间:2023-10-27 09:01:02阅读次数: 63

最佳答案 问答题库638位专家为你答疑解惑

目录

    • 问题分析
    • 解决方案
    • 参考文档
    • 开源项目
      • 微服务商城项目
      • 前后端分离项目

问题分析

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

spring:cloud:gateway:discovery:locator:enabled: true # 启用服务发现lower-case-service-id: truedefault-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 依赖即可

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-oauth2-client</artifactId></dependency>

参考文档

Spring Cloud Gateway 官方文档: The TokenRelay GatewayFilter Factory
在这里插入图片描述

开源项目

微服务商城项目

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

前后端分离项目

GithubGitee开源组织有来开源组织有来开源组织后端youlai-boot 📖youlai-boot 📖前端vue3-element-admin 🌎vue3-element-admin 🌎
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Unable to find GatewayFilterFactory with name TokenRelay":http://eshow365.cn/6-25879-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!