0

我目前正在使用我的控制器配置我的 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”中,我传递了映射到数据映射器 LoginCredential 的凭据。此类具有用户的“用户名”、“密码”和“令牌”属性。在这一点上,我认为将 LoginCredential 的对象属性传递给 OAuth2RestTemplate loginCredentialRest 会很容易,但事实并非如此。

此外,我还使用访问令牌端点 (accessTokenUri) 配置了 ResourceOwnerPasswordResourceDetails,并且基本上将此对象连接到 Oauth2RestTemplate。我将如何使用它向访问令牌端点发出请求,为访问令牌提供“用户名”、“密码”和“令牌”?

4

1 回答 1

0

我不确定我是否了解对它的需求或您的用例的任何细节,但是在 Spring OAuth 2.0.4 中,您可以在调用之前将用户凭据AccessTokenRequest添加到它)。AccessTokenProviderOAuth2RestTemplate

于 2014-11-16T09:03:21.060 回答