Spring OAuth2 OAuth2RestTemplate和资源所有者密码

时间:2015-05-07 18:06:04

标签: spring spring-security-oauth2

我正在尝试弄清楚如何在使用Spring OAuth2向我的授权服务器进行身份验证时让我的Spring OAuth2Client使用资源自己的密码方案。我没有得到文档所说的内容:

  

如果你绝对需要密码授权才能从Java客户端工作,那么使用相同的机制来配置你的OAuth2RestTemplate并将凭证添加到AccessTokenRequest(这是一个Map并且是短暂的)而不是ResourceOwnerPasswordResourceDetails(它在所有人之间共享)访问令牌。

我该怎么做?由于我正在构建授权服务器和客户端,因此我的客户端是受信任的来源,我不需要通过身份验证代码流。

我看到了这个答案:Spring Security Oauth2 - Adding credentials to the AccessTokenRequest

但是,我并不清楚如何实现这一目标,因此我不必经历重定向。你能通过一个基本的auth标题来做到这一点吗?

更新: 我想我已经开始工作了

我创建一个ResourceOwnerPasswordResourceDetails并创建一个新的ResourceOwnerPasswordAccessTokenProvider

然后使用凭据获取令牌并在注入的oauth rest模板中设置令牌。

OAuth2AccessToken token = accessTokenProvider.obtainAccessToken(details, request);
restTemplate.getOAuth2ClientContext().setAccessToken(token);

这是对的吗?

0 个答案:

没有答案