2016-03-28 3 views
0

プロキシサーバーを介してApache Client 4.5を使用して、私のservice-nowインスタンスに接続しようとしています。残念ながら、接続は以下の例外を除いて失敗しています。Apache Http Client 4.5 ServiceNowに統合する際の認証例外

HTTP/1.1 401不正 { "エラー":{ "メッセージ": "ユーザーが認証されない"、 "詳細": "認証情報を提供するために必要な"}、 "ステータス": "失敗"}

これは認証の例外が原因であることを理解できますが、以下のように資格情報を提供しているようです。

コードスニペット:ブラウザで試したとき、私は私がURLへのアクセス権を持っていることを前提とし

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(); 
    } 
} 

は同じURLので、「https://instance.service-now.com/api/now/table/incident」にアクセスしていますが、SSO(シングル歌うオン)を使用して正常に動作します。

紛失しているものを手伝ってください。

ありがとうございました。

ありがとうございます。

答えて

0

あなたはURLであると述べました。新しいAuthScopeはURLではなくホスト名でなければなりません。

関連する問題