spring - 如何在 Spring 微服务之间传递原始 Oauth2 不记名 token

标签 spring spring-boot oauth spring-security-oauth2 resttemplate

我们有一些 Spring 微服务,它们通过 Rest(Spring 的 RestTemplate)相互通信。所有这些都应用了 Oauth2 授权,并且 JWT token 通过一些自定义字段(即 userRole、userId 等)进行了扩展。

我的问题如下:

当我们调用一个服务,同时通过 RestTemplate 调用另一个微服务时,当微服务相互通信时,原始的承载 token (Oauth2) 不会被转发。我们无法从其他服务获得响应,因为我们未经授权。我找不到一个简洁的解决方案。

请注意,我们不想为第二次调用获取新 token ,因为这会影响我们的性能。这就是 OAuth2RestTemplate 正在做的事情,但我们只想传递原始的不记名 token 。

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

最佳答案

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

hystrix: 命令: 默认: 执行: 隔离: 策略:信号量 线: 超时毫秒:5000

关于spring - 如何在 Spring 微服务之间传递原始 Oauth2 不记名 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115420/

相关文章:

java - 当 bean 构造函数使用参数时 Spring init 失败

c# - OWIN + OAuth - 如何提供用户 ID 而不是用户名

.net - Google GData .Net OAuthUtil.GetAccessToken 400 错误请求

json - 在 config.json 文件中输入自定义类型值

java - 无法将 Spring Batch MongoItemReader 上的属性的 Query 类型的值转换为所需类型 'java.lang.String'

java - Togglz 在功能切换时返回 403

java - Spring根据请求值使用不同的bean

java - 在 Kotlin/Java 中寻找 .properties 和 .y(a)ml 文件的属性解析器,就像在 Spring 中一样

java - 尝试重定向时出现 Spring Security 错误 "Access is Denied"

java - 为什么 MockMvc 在启用 Spring Security 的情况下在有效路径上返回 404 错误?