java - Spring Oauth2 客户端凭证流程示例

标签 java spring-security oauth-2.0 spring-security-oauth2 microservices

我正在尝试使用 spring oauth2 将服务安全性实现到 spring boot 服务中。我想要一个服务访问另一个服务的安全资源,而不涉及任何用户操作。

授权代码授权类型有很多示例,但关于客户端凭据授权类型的示例并不多,这似乎是该用例的正确示例。

我可以设置身份验证服务器并使用 curl 请求获取 token 。 我发现的测试使用 Http 对象来检查状态代码。

如何在带有 RestTemplate 和 spring oauth2 的 java 客户端中使用客户端凭据授权类型?

我认为它一定很简单,就像添加一个依赖项、一个注解和一个配置文件一样,但我无法让它运行。

最佳答案

很简单:

  1. 创建一个 Config 类,用 @Configuration 注释。
  2. 在此类中,创建一个实现接口(interface) OAuth2ProtectedResourceDetails 的实例,并在该方法中创建一个 ClientCredentialsResourceDetails 实例。将您的值添加到它并返回它。
  3. Configuration 类中创建类型为 OAuth2RestTemplate 的第二个实例,并通过调用默认构造函数在该方法中创建 DefaultOAuth2ClientContext 实例。然后创建一个 OAuth2RestTemplate 并向其添加 OAuth2ProtectedResourceDetails 实例和 DefaultOAuth2ClientContext 实例。随后返回 OAuth2RestTemplate 实例。
  4. 在您的 ControllerService 实例中使用 @Autowired 添加它以使用它。

关于java - Spring Oauth2 客户端凭证流程示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33881958/

相关文章:

java - Google oauth java 客户端获取访问 token 失败,出现 "400 Bad Request { "错误” : "invalid_request" }"

java - 一次或两次触摸屏幕时,我如何决定使用 Java 发送哪个参数?

spring-boot错误: Exceeded maxRedirects.可能陷入重定向循环

java - 强制 Java 虚拟机运行垃圾收集器

java - Spring Security 身份验证未给出 401 错误

spring-security - 撤销 JWT Oauth2 刷新 token

python - 如何使用服务帐户 oauth2 Python 客户端通过 Google 电子邮件设置 API 进行身份验证?

javascript - 使用 Auth0 和客户端 Node.js 服务器在 SPA 中进行身份验证

java - Android 中只有月份和年份的微调器

java - JLabel图片显示问题