Apache HttpClient 4.1.1 L'authentification NTLM n'est pas SPNEGO
Le problème ici est la consommation d'une ressource web qui a de l'authentification NTLM tout en utilisant Apache HttpClient sur le côté client. La question que je vais avoir est de forcer le client à utiliser l'authentification NTLM. voici un code sapmle.
DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getAuthSchemes().register("ntlm",new NTLMSchemeFactory());
NTCredentials creds = new NTCredentials("_myUSer_","_myPass_","_myWorkstation_","_myDomain_");
httpclient.getCredentialsProvider().setCredentials( new AuthScope("serverName",80), creds);
List<String> authpref = new ArrayList<String>();
authpref.add(AuthPolicy.NTLM);
httpclient.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF, authpref);
HttpHost target = new HttpHost("serverName", 80, "http");
HttpGet httpget = new HttpGet("webResource");
HttpContext localContext = new BasicHttpContext();
HttpResponse response = httpclient.execute(target, httpget, localContext);
Ici est l'erreur de Java:
org.apache.http.client.protocol.RequestTargetAuthentication process
SEVERE: Authentication error: Invalid name provided (Mechanism level: Could not load configuration file C:\WINDOWS\krb5.ini (The system cannot find the file specified))
La réponse de serveur web est un 401
.
Toutes les idées sur le pourquoi de la auth pour politique de ne pas être correctement réglée?
Ai-je raté quelque chose dans le code?
source d'informationauteur Kelly
Vous devez vous connecter pour publier un commentaire.
J'ai une situation similaire et je pense que vous êtes un mauvais réglage de la paramètre: AuthPNames.PROXY_AUTH_PREF. J'utilise AuthPNames.TARGET_AUTH_PREF et tout semble bien fonctionner.
Voici ma solution à ce Problème: "evandongen" est à droite.
Veuillez noter que l'utilisation de la URIBuilder.
Je pense que c'est à cause d'un défaut, voir ici.
HttpClient n'a pas fonctionné pour moi, mais l'extrait de code ci-dessous ne.
De référence - http://docs.oracle.com/javase/7/docs/technotes/guides/net/http-auth.html