L'Authentification de base avec RestTemplate (3.1)

Je suis en train d'essayer de reproduire la commande curl suivante à l'aide de Java:

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

Cette commande retourne des données JSON.

Mon buggy implémentation de Java est comme suit:

@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;
}

Pourtant, quand j'exécute le test, il renvoie une org.springframework.web.client.HttpClientErrorException: 401 Unauthorized exception.

Lors de la connexion DEBUG, je ne vois pas d'informations sur l'authentification...

Ce que je fais mal lors de la configuration des informations d'identification d'authentification?

OriginalL'auteur Jean Logeart | 2013-01-17