Я настроил JHipster, как описано на его домашней странице, с некоторыми объектами. Фронтенд с AngularJS отлично работает, а также страница API позволяет мне тестировать мои сервисы, как и ожидалось.
Теперь я пытаюсь написать REST-клиент, используя Spring RestTemplate следующим образом:
public List<SomeEntity> getAllEntities(){
URI uri = URI.create("http://localhost:8080/api/entities");
HttpHeaders httpHeaders = this.createHeaders("admin", "admin")
ResponseEntity<SomeEntity[]> responseEntity = restTemplate.exchange(uri, HttpMethod.GET, new HttpEntity<SomeEntity>(httpHeaders), SomeEntity[].class);
return Arrays.asList(responseEntity.getBody());
}
private HttpHeaders createHeaders(final String username, final String password ){
HttpHeaders headers = new HttpHeaders(){
{
String auth = username + ":" + password;
byte[] encodedAuth = Base64.encode(
auth.getBytes(Charset.forName("US-ASCII")) );
String authHeader = "Basic " + new String( encodedAuth );
set( "Authorization", authHeader );
}
};
headers.add("Content-Type", "application/json");
headers.add("Accept", "application/json");
return headers;
}
Но это приводит к следующей ошибке: [WARN] org.springframework.web.client.RestTemplate — запрос GET для «http://localhost:8080/api/entities" в результате 401 (неавторизованный); вызов обработчика ошибок
Теперь я не уверен, нужно ли и как мне адаптировать мои HttpHeaders или мой простой подход к обработке базовой аутентификации вообще неверен.