我目前处于用控制器配置Oauth2RestTemplate的位置。所述控制器将接收用户在ResourceOwnerPasswordResourceDetails中设置的用户名和密码,但是,我没有看到它是如何设置的。此应用程序用于Oauth2客户端设置。
//An extention of ResourceOwnerPasswordResourceDetails that adds a property 'token'.
<bean id="cPassword" class="com.cointraders.site.overrides.TokenOauthResourceDetails">
<property name="grantType" value="c_password"></property>
<property name="clientAuthenticationScheme" value="header"></property>
<property name="clientId" value="cointraders"></property>
<property name="clientSecret" value="p@ssw0rd"></property>
<property name="accessTokenUri" value="${oauth.accessTokenUri}"></property>
</bean>
//My controller using the 'cPassword' bean above
<bean id="loginController" class="com.cointraders.site.controllers.LoginController">
<property name="checkCredentialRest">
<oauth:rest-template resource="cPassword">
</oauth:rest-template>
</property>
</bean>
//My Controller
@RequestMapping(value="/login")
public class LoginController {
private OAuth2RestTemplate checkCredentialRest;
private OAuth2RestTemplate loginCredentialRest;
public void setCheckCredentialRest(OAuth2RestTemplate checkCredentialRest) {
this.checkCredentialRest = checkCredentialRest;
}
public void setLoginCredentialRest(OAuth2RestTemplate loginCredentialRest) {
this.loginCredentialRest = loginCredentialRest;
}
@RequestMapping(method=RequestMethod.POST)
@ResponseStatus(value=HttpStatus.OK)
public void verifyCredential(@RequestBody LoginCredential creds)
{
}
}
可以看出,来自我的'verifyCredential&#39;我传递映射到datamapper LoginCredential的凭据。此类包含&#39;用户名&#39;,&#39;密码&#39;和#39;令牌&#39;为用户。在这一点上,我很兴奋将LoginCredential的对象属性传递给OAuth2RestTemplate loginCredentialRest很容易,但事实并非如此。
此外,我已使用访问令牌端点(accessTokenUri)配置ResourceOwnerPasswordResourceDetails,并且基本将此对象连接到Oauth2RestTemplate。我如何使用它向访问令牌端点发出请求,提供&#34;用户名&#34;,&#34;密码&#34;和#34;令牌&#34;用于访问令牌?
答案 0 :(得分:0)
我不确定我是否真的了解它或您的用例的任何细节,但在Spring OAuth 2.0.4中,您可以在调用{{1}之前将用户凭据添加到AccessTokenRequest
(即在你有一个访问令牌给它之前不使用AccessTokenProvider
。)