Spring Oauth2RestTemplate错误“access_denied”

时间:2017-06-21 18:59:13

标签: java spring spring-security-oauth2

我需要使用ClientCredential Grant来使用OAuth2 Rest服务。

我正在使用spring security and spring oauth2。

要获取访问令牌,我需要调用令牌uri传递给它 clientId 密码

基本上我需要用这个身体发送一个POST

>>> import tensorflow
>>> from tensorflow.contrib.keras.models import Sequential
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named models
>>> tensorflow.contrib.keras.models.Sequential
<class 'tensorflow.contrib.keras.python.keras.models.Sequential'>

我应该在回复中得到类似内容

{"clientId":"demo",
"password": "demo_password"
}

我试图以这种方式配置OAuth2RestTemplate

{
    "expiresIn": 3600,
    "accessToken": "EF2I5xhL2GU9pAwK",
    "statusCode": 200,
    "refreshToken": "72BIcYWYhPjuPDGb"
}

但我总是

@Configuration
@EnableOAuth2Client
public class RestTemplateConf {

    @Value("${ApiClient}")
    private String oAuth2ClientId;

    @Value("${ApiSecret}")
    private String oAuth2ClientSecret;

    @Value("${ApiUrl}")
    private String accessTokenUri;


    @Bean
    public OAuth2RestTemplate oAuthRestTemplate() {
        ClientCredentialsResourceDetails resourceDetails = new ClientCredentialsResourceDetails();
        resourceDetails.setClientId(oAuth2ClientId);
        resourceDetails.setClientSecret(oAuth2ClientSecret);
        resourceDetails.setAccessTokenUri(accessTokenUri);
        resourceDetails.setTokenName("accessToken");


        OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(resourceDetails, new DefaultOAuth2ClientContext());

        return restTemplate;
    }


}

例如,如果我使用POSTMAN对tokenUri进行POST调用,我会正确获取令牌...

0 个答案:

没有答案