Spędziłem wiele dni i nocy, próbując znaleźć odpowiednią architekturę Java, która mogłaby połączyć się z programem Microsoft Dynamics CRM, który używa uwierzytelniania Negotiate/NTLM. Wypróbowałem wszystkie istniejące sugestie dotyczące Stackoverflow i innych zasobów z JAX-WS, Axis2, CXF z różnymi procedurami protokołu HTTP. Żaden z nich nie działał zgodnie z oczekiwaniami. Obecnie najlepszym podejściem jest Axis2/commons-httpclient-3.1, w którym mogę śledzić co najmniej wszystkie trzy fazy z trawieniem NTLM, jednak docelowy IIS nadal odmawia uwierzytelnienia z 401 nieautoryzowanym. Apache CXF - zarówno z wbudowaną obsługą Java 6 NTLM, jak i jCIFS, które niektórzy sugerowali jako środek zaradczy, nie działał tak, jak poprzedni błąd przy drugiej odpowiedzi 401 (podczas gdy powinno być wysłane trzecie żądanie, zgodnie z protokół), a drugi próbuje odczytać kod odpowiedzi z pustego strumienia wejściowego i kończy się niepowodzeniem.Klient Java dla usługi sieciowej SOAP z uwierzytelnianiem NTLM
Pytanie brzmi, czy komuś udało się opanować usługę sieciową SOAP chronioną NTLM z platformy Java 6?
Sprawdź: Wsparcie dla profilu Kerberos powinno być w CXF (patrz ['KerberosTokenPolicyValidator'] (http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org /apache/cxf/ws/security/wss4j/policyvalidators/KerberosTokenPolicyValidator.java?view=markup&pathrev=1149227)). W przeciwnym razie sprawdź [wss4j-kerberos] (http://wss4j-kerberos.svn.sourceforge.net/viewvc/wss4j-kerberos/trunk/src/org/apache/ws/security/processor/KerberosTicketProcessor.java?revision=HEAD&view= znaczników). –
Cześć! Rozwiązałeś to? –
Tak. Zobacz http://stackoverflow.com/a/7274388/802831 –