Резервирование SSLSocketFactory и TrustManager в OkHttp3 - PullRequest
0 голосов
/ 08 ноября 2018

В OkHttp3 следующее устарело: [A] :

    sslSocketFactory(SSLSocketFactory sslSocketFactory) 

Заменяется на [B] :

    sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager).

Вот мои вопросы:


Дополнительная информация:

При создании объекта SSLSocketFactory уже можно указать trustManager в

sslContext.init(KeyManager[] arg0, TrustManager[] arg1, SecureRandom arg2).

Например, я получаю объект SSLSocketFactory , выполнив:

public SSLSocketFactory getSSLSocketFactory() {
  SSLContext sslContext = SSLContext.getInstance("TLS");
  sslContext.init(getKeyManager(), getTrustManager(), new SecureRandom());
  return sslContext.getSocketFactory();
}

С getTrustManager () методом, который возвращает TrustManager [] , который содержит сертификат сервера, которому клиент должен доверять.

Теперь, с

sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager) 

ожидает, что я предоставлю объект X509TrustManager , я справляюсь с этим, выполняя:

OkHttpClient okClient = new OkHttpClient.Builder().sslSocketFactory(getSSLSocketFactory(), (X509TrustManager) getTrustManager()[0]).build();

Однако я чувствую, что это не то, как они ожидали, что мы будем его использовать. Так что любые входные данные приветствуются.

Спасибо.

...