Spring Oauth2 客户端凭据流示例

Posted

技术标签:

【中文标题】Spring Oauth2 客户端凭据流示例【英文标题】:Spring Oauth2 client credentials flow example 【发布时间】:2016-02-26 04:53:14 【问题描述】:

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

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

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

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

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

【问题讨论】:

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

很简单:

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

【讨论】:

以上是关于Spring Oauth2 客户端凭据流示例的主要内容,如果未能解决你的问题,请参考以下文章

了解 OAuth2 客户端凭据流

Spring安全中的Oauth2客户端

OAuth2“客户端凭据流”的浏览器测试工具

Office 365 客户端凭据中的错误回调授予 OAuth2 流

使用 OAuth2 客户端凭据流保护用 PHP 编写的 REST API

Spring OAuth2 安全 - 客户端凭据 - 自定义 AuthenticationProvider