2016-03-28 10 views
0

Ich versuche, über Apache Client 4.5 über einen Proxy-Server eine Verbindung zu meiner Service-Now-Instanz herzustellen. Leider schlägt die Verbindung mit der folgenden Ausnahme fehl.Apache Http Client 4.5 Authentifizierungsausnahme bei der Integration in ServiceNow

HTTP/1.1 401 Unauthorized { "Fehler": { "message": "Benutzer nicht authentifiziert", "Detail": "Erforderliche Auth Informationen zur Verfügung zu stellen"}, "Status": "Fehler"}

Ich kann verstehen, dass dies wegen der Authentifizierungsausnahme ist, aber ich habe anscheinend die Berechtigung wie unten gezeigt zur Verfügung gestellt.

Code Snippet:

public void getRequestWithProxy() throws ClientProtocolException, IOException 
{ 
CredentialsProvider credsProvider = new BasicCredentialsProvider(); 
    credsProvider.setCredentials(
      new AuthScope("proxy.xxxx.com", 0000), 
      new UsernamePasswordCredentials("proxyuser", "proxypassword")); 
    credsProvider.setCredentials(
      new AuthScope("instance.service-now.com", 443), 
      new UsernamePasswordCredentials("username", "password")); 
    CloseableHttpClient httpclient = HttpClients.custom() 
      .setDefaultCredentialsProvider(credsProvider).build(); 
    try { 
     HttpHost target = new HttpHost("instance.service-now.com", 443, "https"); 
     HttpHost proxy = new HttpHost("proxy.xxxx.com", 0000); 

     RequestConfig config = RequestConfig.custom() 
      .setProxy(proxy) 
      .build(); 
     HttpGet httpget = new HttpGet("/api/now/table/incident"); 
     httpget.setConfig(config); 

     System.out.println("Executing request " + httpget.getRequestLine() + " to " + target + " via " + proxy); 

     CloseableHttpResponse response = httpclient.execute(target, httpget); 
     try { 
      System.out.println("----------------------------------------"); 
      System.out.println(response.getStatusLine()); 
      System.out.println(EntityUtils.toString(response.getEntity())); 
     } finally { 
      response.close(); 
     } 
    } finally { 
     httpclient.close(); 
    } 
} 

Ich gehe davon aus, dass ich Zugriff auf den zugreifenden URL Uhr, weil die gleiche URL "https://instance.service-now.com/api/now/table/incident", wenn in Browser versucht funktioniert gut SSO (Single Sign On) verwenden.

Bitte helfen Sie mir mit was fehlt.

Vielen Dank im Voraus für Ihre Hilfe in diesem.

Vielen Dank.

Antwort

0

Sie haben angegeben, dass es sich um eine URL handelt. neues AuthScope sollte ein Hostname und keine URL sein.