我正在尝试通过使用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调用以完成单个任务的任务。 另外,我想知道我是否从安全角度遗漏了任何必要的验证。