2017-05-31 6 views
0

Ich versuche, die URL mit Standardauthentifizierung zu erhalten. Ich stelle den Benutzer/das Passwort wie unten angegeben ein. Derselbe Berechtigungsnachweis funktioniert im Postboten.HttpClientErrorException: 401 Nicht autorisierte Basisauthentifizierung

String RELATIVE_IDENTITY_URL = "http://my_url/api/core/v3/people/email/[email protected]"; 
    RestTemplate restTemplate; 
    Credentials credentials; 

    //1. Set credentials 
    credentials = new UsernamePasswordCredentials("admin", "admin"); 

    CredentialsProvider credsProvider = new BasicCredentialsProvider(); 
    credsProvider.setCredentials(AuthScope.ANY, credentials); 

    //2. Bind credentialsProvider to httpClient 
    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); 
    httpClientBuilder.setDefaultCredentialsProvider(credsProvider); 
    CloseableHttpClient httpClient = httpClientBuilder.build(); 

    HttpComponentsClientHttpRequestFactory factory = new 
      HttpComponentsClientHttpRequestFactory(httpClient); 

    //3. create restTemplate 
    restTemplate = new RestTemplate(); 
    restTemplate.setRequestFactory(factory); 

    //4. restTemplate execute 
    String url = RELATIVE_IDENTITY_URL; 

    String xml = restTemplate.getForObject(url,String.class); 
    System.out.println("Done"); 

Ich denke, die Anmeldeinformationen sind nicht korrekt festgelegt. Was ist hier falsch.? Fehler:

Exception in thread "main" org.springframework.web.client.HttpClientErrorException: 401 Unauthorized 
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91) 
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:667) 
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:620) 
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:580) 
    at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:287) 
    at com.src.AuthRestService.main(AuthRestService.java:85)  
+1

Wenn Sie die Anfrage stellen, wie fügen Sie die Anmeldeinformationen an und legen Sie den Auth-Header fest? –

+0

@MikeTung: Ich habe gerade vermisst, hinzuzufügen. Ich dachte wirklich, dass es aus dem Set-Credentials-Teil oben gehen würde. es funktioniert, wenn ich es über Header setze. Vielen Dank – NaaN

Antwort

2

Sie den Auth-Header fehlen und die Anmeldeinformationen in Ihrer Rest Vorlage Ausführung zu setzen.

Verwandte Themen