【问题标题】:Spring Oauth2 client credentials flow exampleSpring Oauth2 客户端凭据流示例
【发布时间】:2023-04-09 10:14:01
【问题描述】:

我正在尝试使用 spring oauth2 将服务到服务安全性实施到 Spring Boot 服务中。我希望一项服务无需任何用户操作即可访问另一项服务的安全资源。

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

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

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

我认为它必须像添加依赖项、注释和配置文件一样简单,但我无法让它运行。

【问题讨论】:

  • 请更新您的问题以添加您尝试过的代码和您遇到的错误。要改进您的问题,请阅读如何提问stackoverflow.com/help/how-to-ask 以及如何创建最小、完整和可验证的示例stackoverflow.com/help/mcve。并且永远不要要求提供教程/工作示例,因为我们不是在这里教/为您工作

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


【解决方案1】:

很简单:

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

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 2016-09-28
    • 2012-12-17
    • 1970-01-01
    • 2022-01-26
    • 2020-12-25
    • 1970-01-01
    • 2022-08-06
    • 2020-01-18
    相关资源
    最近更新 更多