2016-04-29 269 views
0

我一直在嘗試將restTemplate與基本身份驗證一起傳遞,它甚至沒有將auth頭傳遞給服務器。這裏是bean定義我使用的是什麼`使用RestTemplate進行基本身份驗證

@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

一般情況下,客戶不知道期待什麼樣的認證服務器。所以客戶端在服務器請求之前不會發送基本的身份驗證頭。見Server side of basic authentication

這是你的情況,如果服務器請求驗證RestTemple,如你所設置的那樣,將會發出第二個包含頭的請求。

相關問題