2011-10-24 19 views
5

Kendi imzalı sertifikalarla uğraşmayı daha kolay hale getirmek için laboratuvar sistemlerimizdeki tüm SSL sertifikalarına güvenmek amacıyla Dumb X509TrustManager ve HostnameVerifier kullanılarak Jersey RESTful istemcileri yazdım.CXF RESTful Client - Tüm sertifikalara nasıl güvenilir?

 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); 
     } 
     .... 

CXF kullanarak benzer bir şey yapmamın bir yolu var mı?

cevap

6

Bu, CXF posta listesinden alınmıştır. Nedeniyle diğer sistem güncellemelerine uygulamak zorunda olmadığını unutmayın, bu nedenle bu teorik geçerli:

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

[Bu cevap] (http://stackoverflow.com/a/6755459/150992) nasıl öldürürsün ayrıntıları Sertifikaları körü körüne kabul eden sahte bir TrustManager kurar. (tabii ki, muhtemelen üretimde böyle bir şey kullanmak istemiyorsunuz) – Eyal

İlgili konular