Spring 4.0.0 Basisauthentifizierung mit RestTemplate
Ich arbeite derzeit an der Integration einer Drittanbieteranwendung in unser lokales Berichtssystem. Ich möchte REST-Aufrufe mit Standardauthentifizierung implementieren, habe jedoch Probleme mit Spring 4.0.0. Ich habe eine einfache Lösung, die gut funktioniert:
final RestTemplate restTemplate = new RestTemplate();
final String plainCreds = "username:password";
final byte[] plainCredsBytes = plainCreds.getBytes();
final byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes);
final String base64Creds = new String(base64CredsBytes);
final HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Basic " + base64Creds);
final HttpEntity<String> request = new HttpEntity<String>(headers);
final ResponseEntity<MyDto> response = restTemplate.exchange("myUrl", HttpMethod.GET, request, MyDto.class);
final MyDto dot = response.getBody();
wollte dies aber umschreiben verwendenClientHttpRequestFactory auf die folgende Weise:
final RestTemplate restTemplate = new RestTemplate(createSecureTransport("username", "password"));
private ClientHttpRequestFactory createSecureTransport(final String username, final String password) {
final HttpClient client = new HttpClient();
final UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(username, password);
client.getState().setCredentials(new AuthScope(null, 9090, AuthScope.ANY_REALM), credentials);
return new CommonsClientHttpRequestFactory(client);
}
Dieser Code kompiliert nicht alsCommonsClientHttpRequestFactory Klasse existiert in Spring 4.0.0 nicht mehr. Kennt jemand eine alternative Lösung dazu? Ich bin ziemlich neu in dieser REST-Welt, daher wird jede Hilfe geschätzt.