我正在尝试使用 spring oauth2 将服务安全性实现到 spring boot 服务中。我想要一个服务访问另一个服务的安全资源,而不涉及任何用户操作。
授权代码授权类型有很多示例,但关于客户端凭据授权类型的示例并不多,这似乎是该用例的正确示例。
我可以设置身份验证服务器并使用 curl 请求获取 token 。 我发现的测试使用 Http 对象来检查状态代码。
如何在带有 RestTemplate 和 spring oauth2 的 java 客户端中使用客户端凭据授权类型?
我认为它一定很简单,就像添加一个依赖项、一个注解和一个配置文件一样,但我无法让它运行。
最佳答案
很简单:
- 创建一个
Config
类,用@Configuration
注释。 - 在此类中,创建一个实现接口(interface)
OAuth2ProtectedResourceDetails
的实例,并在该方法中创建一个ClientCredentialsResourceDetails
实例。将您的值添加到它并返回它。 - 在
Configuration
类中创建类型为OAuth2RestTemplate
的第二个实例,并通过调用默认构造函数在该方法中创建DefaultOAuth2ClientContext
实例。然后创建一个OAuth2RestTemplate
并向其添加OAuth2ProtectedResourceDetails
实例和DefaultOAuth2ClientContext
实例。随后返回OAuth2RestTemplate
实例。 - 在您的
Controller
和Service
实例中使用@Autowired
添加它以使用它。
关于java - Spring Oauth2 客户端凭证流程示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33881958/