Basic-Authentifizierung mit RestTemplate (3.1)

Ich bin versucht zu reproduzieren der folgenden curl-Befehl mit Java:

curl -v -u user:pass http://myapp.com/api

Dieser Befehl gibt einige JSON-Daten.

Meine fehlerhafte Java-Implementierung ist wie folgt:

@Test
public void callTest() {
    RestTemplate restTemplate = createRestTemplate("user", "pass");
    URI uri = new URI("http://myapp.com/api");
    String res = restTemplate.getForObject(uri, String.class);
}

private static RestTemplate createRestTemplate(String username, String password) {

    UsernamePasswordCredentials cred = new UsernamePasswordCredentials(username, password);
    BasicCredentialsProvider cp = new BasicCredentialsProvider();
    cp.setCredentials(AuthScope.ANY, cred);
    DefaultHttpClient client = new DefaultHttpClient();
    client.setCredentialsProvider(cp);
    ClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(client);

    RestTemplate restTemplate = new RestTemplate(factory);
    //set the media types properly
    return restTemplate;
}

Doch, wenn ich den test auszuführen, gibt es eine org.springframework.web.client.HttpClientErrorException: 401 Unauthorized Ausnahme.

Beim einloggen DEBUG sehe ich keine Informationen über die Authentifizierung...

Was mache ich falsch bei der Einstellung der Anmeldeinformationen für die Authentifizierung?

InformationsquelleAutor Jean Logeart | 2013-01-17
Schreibe einen Kommentar