Quiero consumir .Net WS de IBM WebSphere.JAX-WS Cliente de IBM que consume .Net WS con autenticación de Active Directory (NTLM)
Creé un WS-client con JAX-WS Implementación de IBM que consume un .Net WS en IIS. El cliente está en SUSE y la autenticación es por NTLM con Windows Server 2003 Active Directory.
Si el cliente se ejecuta en la línea de comandos de la aplicación llama java.net.Authenticator para obtener las credenciales y la solicitud es exitosa.
Si el cliente se ejecuta dentro de la RAD Authenticator no se llama y falla con 401.
Si el cliente se ejecuta en el interior de WebSphere el Authenticator no es llamado y falla con 401.
Si creo una HttpConnection directamente a .Net WS URL, se llama al Authenticator y la solicitud es exitosa.
Si en lugar de la implementación de JAX-WS IBM utilizo el Axis2 (directamente, no la implementación IBM Axis2 JAX-WS) podría pasar al cliente Axis2 el objeto Authenticator y la solicitud es exitosa. Esto solo funciona para el protocolo NTLM con Windows Server 2003. Cuando migramos a Windows Server 2008, el protocolo de autenticación es NTLMv2 (todos se mueven a NTLMv2 debido a problemas de seguridad con NTLM) y la solicitud falla porque NTLMv2 no es compatible con HTTP Client 3. X esa es la dependencia de Axis2. Y durante un tiempo no van a migrar.
Si utilizo otra Implementación de JAX-WS de IBM me suelta la administración de la consola y la lectura automática de anotación, más que perder el apoyo de IBM.
Preguntas
que por qué no se deje en el interior de RAD que Dejase't trabajo, es el mismo programa que funciona desde la línea de comandos.
¿Cómo se puede autenticar la implementación de JAX-WS IBM con el soporte de protocolo NTLMv2 con credenciales específicas? (java.net.Authenticator le proporciona esto, y debe llamarse ... no)
¿Hay alguna manera de hacer que la implementación de IBM JAX-WS use otro cliente HTTP que el estándar?
Incluso la implementación de IBM JVM proporciona autenticación NTLM (esta es la razón por la cual funciona la línea de comandos y las ejecuciones directas de HttpConnection), así que no entiendo por qué no la usan para la pila IBM WS.
puntos Plus
¿Hay alguna buena manera de proporcionar la capacidad bidireccional de consumir WS con la autenticación de ActiveDirectory?
comentario
primavera WS utiliza HttpClient 4.X que soporta autenticación NTLMv2, pero necesito una aplicación JAX-WS y debe ser el que IBM. IBM JAX-WS solo parece ser compatible con AUTH básico. No entiendo cómo la interoperabilidad WS de Microsoft no es importante para IBM.
Referencias
autenticador conf:
https://stackoverflow.com/a/5994706/14811
Gracias de antemano!
No elijo ir a NTLMv2, la empresa va a. WS-Security es una capa sobre el protocolo de transporte. NTLMv2 funciona en la capa de transporte, por lo que no puedo ir con WS-Security. Kerberos es una mejor opción que NTLMv2, pero no permite el equilibrio de carga a través de DNS porque es resistente al ataque Man-In-The-Middle. En este caso, el IP objetivo podría cambiar. NTLMv2 es seguro, no necesitamos Kerberos. Probé algunas pilas WS (Axis2, IBM JAX-WS, Spring WS) con la estrategia Authenticator y todas ellas lo evitan. Pero el documento Authenticator dice que cualquier acceso de red debería buscar credenciales en él. –
Acerca del autenticador. Creé un pequeño programa que establece un Authenticator y llama a WS. Si ejecuto este programa dentro de RAD, falla, si lo ejecuta desde la línea de comandos llama al Authenticator para obtener las credenciales y funciona bien. No sé por qué. –