首页 文章

如何在Spring微服务之间传递原始的Oauth2承载令牌

提问于
浏览
2

我们有一些Spring微服务通过休息(Spring的RestTemplate)相互通信 . 在所有这些中都应用了Oauth2授权,并且使用一些自定义字段(即userRole,userId等)扩展了JWT令牌 .

我的问题如下:

当我们通过RestTemplate调用也调用另一个微服务的服务时,当微服务彼此通信时,不转发原始承载令牌(Oauth2) . 我们无法得到其他服务的回复,因为我们是未经授权的 . 我找不到一个简洁的解决方案 .

请注意,我们不希望为第二次调用获取新令牌,因为这会影响我们的性能 . 这就是OAuth2RestTemplate正在做的事情,但我们只想传递原始的承载令牌 .

当我研究Stackoverflow时,一个解决方案是将manually add the bearer + token作为Authorization标头,并使用.exchange(),但我认为应该在spring中有一个配置,这将使RestTemplate传递给原始的Authorization标头或类似的东西 .

1 回答

  • 0

    我在本地测试时遇到了同样的问题 . 我的application.yml文件中的以下配置修复了它 . 令牌从一个服务调用传递到另一个服务调用 .

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

相关问题