axis2 client d'authentification NTLM
J'ai un axis2 (v1.5.3) le client qui doit faire Kerberos/l'authentification NTLM avec IIS. Comment puis-je faire cela? C'est le code que j'ai droit et il ne fonctionne pas avec 401 - unauthorized
erreur:
List<String> authScheme = new ArrayList<String>();
authScheme.add(HttpTransportProperties.Authenticator.NTLM);
HttpTransportProperties.Authenticator ntlm =
new HttpTransportProperties.Authenticator();
ntlm.setAuthSchemes(authScheme);
ntlm.setUsername("Administrator");
ntlm.setPassword("password");
ntlm.setHost("http://server/_vti_bin/someservice.asmx");
ntlm.setPort(80);
ntlm.setDomain("server_domain");
Options options = webs._getServiceClient().getOptions();
options.setProperty(HTTPConstants.AUTHENTICATE, ntlm);
stub._getServiceClient().setOptions(options);
Un client écrit en C# fonctionne très bien avec le même auth paramètres:
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri(webs.Url), "NTLM",
new NetworkCredential("Administrator", "password", "server_domain"));
stub.Credentials = myCache;
Salut @Vijay Mathew, avez-vous résolu? Je suis le développement d'un nouveau service d'authentification NTLM nafiux.com/wasp si je peux vous aider, s'il vous plaît laissez-moi savoir
OriginalL'auteur Vijay Mathew | 2011-05-03
Vous devez vous connecter pour publier un commentaire.
Il y a un problème avec l'authentification NTLM dans AXIS2. Elle est articulée autour de la ntlm.setHost() la méthode. L'entrée est ici utilisé comme poste de travail dans le NTLM échange et que l'Hôte Distant lorsque AuthScope est créé. Cela crée une situation Catch-22 où NTLM ne fonctionne pas à l'aide de la HttpTransportProperties.Authentificateur technique. Vous obtenez soit un "401 unauthorized" ou "Pas d'informations d'identification trouvé pour le < ROYAUME>@HOST".
Voir https://issues.apache.org/jira/browse/AXIS2-4595
Peter
OriginalL'auteur Peter
HttpClient ne supporte pas l'authentification NTLM v2 donc j'utilise JCIFS bibliothèque de retour NTLM v1,2,3 type de message tel que décrit dans le présent site web
http://devsac.blogspot.com/2010/10/supoprt-for-ntlmv2-with-apache.html
J'ai simplement utilisé l'JCIFS_NTLMScheme.java fichier à partir du site web ci-dessus pour enregistrer le auth régime et cela a fonctionné !!!!
Exemple de client:
OriginalL'auteur Learner
Sur la base des notes sur ce lien NTLM problèmes avec Axis2
J'ai renoncé à Axis2 et utilisé CXF à la place.
Le lien suivant vraiment nous, passé le Kerboros/NTLM questions
OriginalL'auteur so_mv
Une alternative à JCIFS est à utiliser Apache HTTPComponents 4 NTLMScheme (qui fonctionne avec les nouveaux NTLM) à l'intérieur d'une coutume Apache Commons HTTP AuthScheme:
Utilisation
J'ai testé cela sur IIS 7.5 sur Windows Server 2008 R2.
OriginalL'auteur Ben Hutchison