2017-06-15 82 views
0

我是oauth的新手,在我的项目中我有一个api,从中我们正在生成Access Token,到目前为止,项目使用curl来生成访问令牌,但现在我们决定使用java来做同样的事情。如何从java代码调用oauth API来生成访问令牌?

curl命令

curl -k https:/monkeyman/oauth/oauth20/token -d client_id=<client_id> -d client_secret=<client_secret> -d grant_type=client_credentials 

我创建了一个小弹簧的启动项目,现在我想创建一个模板,其中用户可以直接打我的春天开机终点并能获得访问令牌,而不是使用卷曲。

回答

0

所以经过一些更详尽的研究,我能破解它 -

此功能会产生对我的访问令牌,我可以这个bean自动装配到我的实际服务

public OAuth2RestTemplate monkeymanRestTemplate() { 
     ClientCredentialsResourceDetails clientCredentialsResourceDetails = new ClientCredentialsResourceDetails(); 
     clientCredentialsResourceDetails.setAccessTokenUri(env.getRequiredProperty("monkeyman.api.accessToken.url")); 
     clientCredentialsResourceDetails.setClientId(env.getRequiredProperty("monkeyman.api.client.id")); 
     clientCredentialsResourceDetails.setClientSecret(env.getRequiredProperty("monkeyman.api.client.secret")); 
     return new OAuth2RestTemplate(clientCredentialsResourceDetails); 
    } 

我可以自动装配上面的bean我的服务类,

@Autowired 
@Qualifier("monkeymanRestTemplate") 
private RestTemplate monkeymanRestTemplate; 

,并在返回服务调用和传递也将通过OAuth访问令牌与呼叫。

ResponseEntity<MonkeyManSiting> report = monkeymanRestTemplate.report(fullApiUrl, HttpMethod.GET, entity, 
       MonkeyManSiting.class); 
相关问题