Альтернатива sslSocketFactory в Java10 - PullRequest
0 голосов
/ 30 мая 2018

Я использую OkHttp, и мне нужно игнорировать ошибки SSL для отладки приложений.Раньше это работало в Java 8.

final TrustManager[] trustAllCerts = new TrustManager[] {
            new X509TrustManager() {
                @Override
                public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
                }

                @Override
                public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
                }

                @Override
                public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                    return new java.security.cert.X509Certificate[]{};
                }
            }
    };

    SSLContext sslContext = null;
    try {
        sslContext = SSLContext.getInstance("SSL");
        sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
    } catch (Exception s) {
        s.printStackTrace();
    }
    final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();

    //
    //.sslSocketFactory(sslSocketFactory) throws error.
    client = new OkHttpClient.Builder().sslSocketFactory(sslSocketFactory).build();

Но в Java 9 и 10 я получаю эту ошибку.

java.lang.UnsupportedOperationException: clientBuilder.sslSocketFactory(SSLSocketFactory) not supported on JDK 9+

Есть ли другой способ игнорировать ошибки SSL OkHttp в Java 9 и10 без использования sslSocketFactory?

1 Ответ

0 голосов
/ 30 мая 2018

Используйте sslSocketFactory (SSLSocketFactory sslSocketFactory, X509TrustManager trustManager)

В своем примере кода вы создаете X509TrustManager, просто передаваете его вместе с фабрикой сокетов.

...