我在运行于EC2的服务器中使用jhipster UAA和Gatewy App。 (https://www.jhipster.tech/images/microservices_architecture_detail.002.png)
我有运行外部云的应用程序将数据放入此服务器,它使用REST端点进行请求。
我需要在此端点上打开安全性,然后使用访问令牌或客户端机密。
我打开了安全性,并通过FrontEnd应用程序复制了我的秘密令牌。我的第一个请求有效,但是第二个请求无效。
我的OAuth2RestTemplate。
@Bean
public OAuth2RestTemplate redditRestTemplate(OAuth2ProtectedResourceDetails resourceDetails, OAuth2ClientContext clientContext) {
clientContext.setAccessToken(new DefaultOAuth2AccessToken(applicationProperties.getAccessToken()));
OAuth2RestTemplate template = new OAuth2RestTemplate(resourceDetails, clientContext);
AccessTokenProvider accessTokenProvider = new AccessTokenProviderChain(
Arrays.<AccessTokenProvider>asList(
new ImplicitAccessTokenProvider(),
new ResourceOwnerPasswordAccessTokenProvider(),
new ClientCredentialsAccessTokenProvider())
);
template.setAccessTokenProvider(accessTokenProvider);
return template;
}
我的请求。
OAuth2RestTemplate b = a.getBean(OAuth2RestTemplate.class);
String c = b.getForEntity("https://cloud.com/api/app/v1/events", String.class).getBody();
第一次请求好。 我需要保存新的accessToken吗?
有什么方法可以使用“客户机密”或其他任何方式进行这种集成?
答案 0 :(得分:0)
发出认证请求/auth/login
后,您必须保存在响应中收到的accessToken
。后续请求必须在标头Authorization: Bearer <accessToken>