2012-06-06 25 views
5

Creé un cliente de eje para el servicio WCF (el cliente fue generado por Eclipse, usando WSDL como entrada).Ignorar la autenticación de certificación en el cliente de Axis para el servicio WCF

El cliente funciona bien cuando se usa HTTP.

Al utilizar HTTPS Me estoy poniendo la siguiente excepción:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Edificio ruta PKIX falló: sun.security.provider.certpath.SunCertPathBuilderException: no se puede encontrar una ruta de certificación válida para el objetivo solicitado

Entiendo el error, pero no quiero darle un lugar donde se encuentran los certificados.

Quiero decirle a Axis que evite este paso (acepte cualquier certificado sin verificarlo).

Sé cómo hacerlo con HttpsURLConnection (creo un validador personalizado que no hace nada), pero no sé cómo hacerlo con axis ... (¿Cómo puedo decirle a axis que use mi validador personalizado, o mejor, cómo puedo decirle que ignore este paso en absoluto).

¿Alguien me puede ayudar?

Gracias,

Matán

+0

¿Se da cuenta de que está presentando una vulnerabilidad de seguridad al hacerlo? No estoy seguro de lo que quiere decir con "* Entiendo el error, pero no quiero darle un lugar donde se encuentran los certificados. *". – Bruno

Respuesta

19

tuve el mismo problema y se fija usando:

AxisProperties.setProperty("axis.socketSecureFactory","org.apache.axis.components.net.SunFakeTrustSocketFactory"); 

En caso de que esto no funciona, echar un vistazo here.

+0

Gracias amigo por publicar esto. :) –

+0

Finalmente, un fragmento de código que funciona con los clientes generados utilizando el eje 1.4 –

Cuestiones relacionadas