有效和安全的方法来填充Rest模板中的授权标头的访问令牌

时间:2019-04-02 07:10:01

标签: java spring spring-boot security resttemplate

我正在尝试通过使用spring框架提供的RestTemplate库使用REST端点。 端点还要求将Bearer Access Token作为其授权标头,该标头仅作为用户身份验证端点的响应获得,而用户认证端点又希望在其标头中使用编码的Basic Auth。

这是我到目前为止所做的高级实现。

HttpHeaders headers = new HttpHeaders();
    headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
    headers.setBearerAuth(fetchAccessToken());
    HttpEntity<String> entity = new HttpEntity<String>("parameters",headers);
    ResponseEntity<?> result = this.restClient.exchange(urlToConsume, HttpMethod.GET, entity, String.class);

“ fetchAccessToken”方法的实现如下

HttpHeaders headers = new HttpHeaders();
    headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    headers.setBasicAuth(externalDestination.getClientId(),
            externalDestination.getClientSecret());
    HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);

    ResponseEntity<?> result = restClient.exchange(authUrl, HttpMethod.GET, entity, String.class);
    //And Thereby fetching 'access_token' from the successful fetch.

我想知道是否有任何更干净的方法来复制上述处理多个Rest调用以完成单个任务的任务。 另外,我想知道我是否从安全角度遗漏了任何必要的验证。

0 个答案:

没有答案