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.