簡體   English   中英

如何在Spring微服務之間傳遞原始的Oauth2承載令牌

[英]How to pass on the original Oauth2 bearer token between Spring microservices

我們有一些Spring微服務通過休息(Spring的RestTemplate)相互通信。 在所有這些中都應用了Oauth2授權,並且使用一些自定義字段(即userRole,userId等)擴展了JWT令牌。

我的問題如下:

當我們通過RestTemplate調用也調用另一個微服務的服務時,當微服務彼此通信時,不轉發原始承載令牌(Oauth2)。 我們無法得到其他服務的回復,因為我們是未經授權的。 我找不到一個簡潔的解決方案。

請注意,我們不希望為第二次調用獲取新令牌,因為這會影響我們的性能。 這就是OAuth2RestTemplate正在做的事情,但我們只想傳遞原始的承載令牌。

在我研究Stackoverflow時,一種解決方案是手動添加bearer + token作為Authorization頭,並使用.exchange(),但我認為應該在spring中有一個配置,這將使RestTemplate在原始Authorization頭上傳遞或類似的東西。

我在本地測試時遇到了同樣的問題。 我的application.yml文件中的以下配置修復了它。 令牌從一個服務調用傳遞到另一個服務調用。

hystrix:command:default:execution:isolation:strategy:SEMAPHORE thread:timeoutInMilliseconds:5000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM