Jhipster UAA外部客户端

时间:2019-05-29 19:24:05

标签: java spring-boot jhipster spring-security-oauth2

我在运行于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吗?

有什么方法可以使用“客户机密”或其他任何方式进行这种集成?

1 个答案:

答案 0 :(得分:0)

发出认证请求/auth/login后,您必须保存在响应中收到的accessToken。后续请求必须在标头Authorization: Bearer <accessToken>

中包含此访问令牌。