問題分析
Spring Cloud Gateway 網(wǎng)關(guān)作為代理資源服務(wù)器,需要將 JWT 傳遞給下游資源服務(wù)器,下面是網(wǎng)關(guān)的配置
spring:
cloud:
gateway:
discovery:
locator:
enabled: true # 啟用服務(wù)發(fā)現(xiàn)
lower-case-service-id: true
default-filters:
# 中繼令牌
- TokenRelay
# 移除Cookie請求頭,避免cookie透傳到后端服務(wù)
- RemoveRequestHeader=Cookie
TokenRelay 激活 TokenRelayGatewayFilterFactory,將令牌中繼傳遞給下游資源服務(wù),例如系統(tǒng)服務(wù) (youlai-system)
但是項目啟動中會報錯:
Unable to find GatewayFilterFactory with name TokenRelay
解決方案
參考鏈接:Spring Gateway and Auth0: IllegalArgumentException: Unable to find GatewayFilterFactory with name TokenRelay
TokenRelay 過濾器的工作原理是,當(dāng)一個請求到達(dá)網(wǎng)關(guān)時,它會從請求中提取 JWT,然后將其添加到轉(zhuǎn)發(fā)到資源服務(wù)器的請求頭中。這樣,資源服務(wù)器就可以從請求頭中提取 JWT,并使用它來驗證用戶的身份和權(quán)限。
spring-boot-starter-oauth2-client 依賴包提供了 OAuth2 客戶端的功能,包括處理和轉(zhuǎn)發(fā) JWT。在 Spring Cloud Gateway 中,它可以與 TokenRelay 過濾器一起工作,安全地處理和轉(zhuǎn)發(fā) JWT。
所以添加 oauth2-client 依賴即可文章來源:http://www.zghlxwxcb.cn/news/detail-725316.html
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
參考文檔
Spring Cloud Gateway 官方文檔: The TokenRelay GatewayFilter Factory文章來源地址http://www.zghlxwxcb.cn/news/detail-725316.html
開源項目
微服務(wù)商城項目
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 ?? |
到了這里,關(guān)于Unable to find GatewayFilterFactory with name TokenRelay的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!