2011-10-24 14 views
5

He escrito a los clientes de Jersey RESTful que hicieron uso de Dumb X509TrustManager y HostnameVerifier para confiar en todos los certificados SSL en nuestros sistemas de laboratorio para que sea más fácil tratar con certs que son autofirmados.CXF RESTful Client - ¿Cómo confiar en todos los certs?

 ClientConfig config = new DefaultClientConfig(); 
     SSLContext context = null; 
     try 
     { 
      context = SSLContext.getInstance("SSL"); 
      context.init(null, 
        new TrustManager[] { new DumbX509TrustManager() }, 
        null); 
      config.getProperties() 
        .put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, 
          new HTTPSProperties(this.getHostnameVerifier(), 
            context)); 
      webClient = Client.create(config); 
     } 
     .... 

¿Hay alguna manera de hacer algo similar con CXF?

Respuesta

6

Esto es de la lista de correo de CXF. Tenga en cuenta que yo no tenía que ponerlo en práctica debido a otras actualizaciones del sistema, por lo que este es teórico:

WebClient webClient = WebClient.create(this.serviceURL, 
    this.username, 
    this.password, 
    null); // Spring config file - we don't use this 

if (trustAllCerts) 
{ 
    HTTPConduit conduit = WebClient.getConfig(webClient) 
     .getHttpConduit(); 

    TLSClientParameters params = 
     conduit.getTlsClientParameters(); 

    if (params == null) 
    { 
     params = new TLSClientParameters(); 
     conduit.setTlsClientParameters(params); 
    } 

    params.setTrustManagers(new TrustManager[] { new 
     DumbX509TrustManager() }); 

    params.setDisableCNCheck(true); 
} 
+0

[Esta respuesta] (http://stackoverflow.com/a/6755459/150992) detalla cómo se puede configurar un TrustManager ficticio que acepte certificados a ciegas. (por supuesto, probablemente no quieras usar algo como eso en producción) – Eyal

Cuestiones relacionadas