我一直在尝试使用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;
}
`
答案 0 :(得分:0)
通常,客户端不知道哪种认证服务器需要。因此,客户端在服务器请求之前不会发送基本身份验证标头。见Server side of basic authentication。
这是您的情况,如果您设置服务器请求的身份验证RestTemple
,则会使用标头发出第二个请求。