2015-06-04 1 views
8

Когда я генерировать клиентские заглушки веб-сервиса с помощью Apache Axis, отключить сертификат сервера проверки доверия в моем коде, используя клиентские заглушки, вызвав следующий методЭквивалент org.apache.axis.components.net.SunFakeTrustSocketFactory для wsimport

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

Как отключить проверку доверия с помощью заглушек клиента, которые были сгенерированы при запуске wsimport?

Я использую это, когда запускаю некоторый тестовый код.

ответ

6

Все, что происходит в этом классе, - это предоставление фиктивного trust store manager, что trusts anything. Зная это, вы можете использовать this article и поместить что-то вместе.

  1. Сначала easy trust manager

    public class EasyTrustManager implements X509TrustManager { 
        public void checkClientTrusted(X509Certificate[] chain, String authType) { 
         //do nothing 
        } 
    
        public void checkServerTrusted(X509Certificate[] chain, String authType) { 
         //do nothing 
        } 
    
        public java.security.cert.X509Certificate[] getAcceptedIssuers() { 
         return null; 
        } 
    } 
    
  2. Затем кормите диспетчера доверия к экземпляру SSLContext, так же, как axis was doing:

    SSLContext sCtxt = SSLContext.getInstance("SSL"); 
    sCtxt.init(null, new TrustManager[]{new EasyTrustManager()}, new java.security.SecureRandom()); 
    
  3. Настройка пользовательский контекст, по телефону HttpsURLConnection#setDefaultSSLSocketFactory основе на том, что все ваши вызовы веб-сервисов основаны на базовом экземпляре HttpsURLConnection. Этот вызов будет настроить контекст, путем SSLContext#getContext, для все HTTPS называет

    HttpsURLConnection.setDefaultSSLSocketFactory(sCtxt.getSocketFactory()); 
    
+0

Если бы редактировать EasyTrustManager, чтобы сделать его компиляции. – user93353