2016-03-28 2 views
0

Я пытаюсь подключиться к экземпляру my-service-now, используя Apache Client 4.5 через прокси-сервер. К сожалению, соединение не работает с приведенным ниже исключением.Apache Http Client 4.5 Исключение аутентификации при интеграции в ServiceNow

HTTP/1.1 401 Несанкционированное { "Ошибка": { "сообщение": "Пользователь не аутентифицирован", "деталь": "Требуется предоставить информацию идентификации"}, "статус": "неудача"}

Я могу понять, что это из-за исключения аутентификации, но я, похоже, предоставил учетные данные, как показано ниже.

Код сниппета:

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 ам ACCESSING, так как тот же URL "https://instance.service-now.com/api/now/table/incident", когда пытались в браузере работает отлично с использованием единого входа (Single Sing On).

Пожалуйста, помогите мне с тем, чего не хватает.

Заранее благодарю вас за помощь.

спасибо.

ответ

0

Вы указали, что это URL. новый AuthScope должен быть именем хоста, а не URL-адресом.

Смежные вопросы