使用RestTemplate进行基本身份验证

时间:2016-04-29 04:13:56

标签: resttemplate http-basic-authentication

我一直在尝试使用restTemplate传递基本身份验证,它甚至没有将auth标头传递给服务器。这是我使用`

的bean定义
@Bean RestTemplate restTemplate() {

    CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
    credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("test:test"));

    CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultCredentialsProvider(credentialsProvider).build();
    HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);

    RestTemplate restTemplate = new RestTemplate(factory);
    restTemplate.setMessageConverters(Collections.singletonList(mappingJackson2HttpMessageConverter()));
    return restTemplate;
}

`

1 个答案:

答案 0 :(得分:0)

通常,客户端不知道哪种认证服务器需要。因此,客户端在服务器请求之前不会发送基本身份验证标头。见Server side of basic authentication

这是您的情况,如果您设置服务器请求的身份验证RestTemple,则会使用标头发出第二个请求。