【发布时间】:2015-05-19 17:37:22
【问题描述】:
我已经设置了 JHipster,就像它的主页上描述的那样,它带有一些实体。使用 AngularJS 的前端效果很好,API 页面也可以让我按预期测试我的服务。
现在我正在尝试使用 Spring 的 RestTemplate 编写一个 REST-Client,如下所示:
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 - 对“http://localhost:8080/api/entities”的 GET 请求导致 401(未经授权);调用错误处理程序
现在我不确定我是否需要以及如何调整我的 HttpHeaders,或者我的简单基本身份验证处理方法是否完全错误。
【问题讨论】:
标签: spring rest spring-security resttemplate jhipster