Как управлять областью SSLContext - PullRequest
2 голосов
/ 17 мая 2011

Если я использую следующий код, потому что хочу, например, изменить способ проверки сертификатов.

trm = некоторый менеджер доверия

SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[] { trm }, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

Затем устанавливается SSLContextдля всех соединений https, которые будут сделаны в будущем, независимо от того, какой поток.Какой самый чистый способ управления областью, чтобы я установил его только для тех вызовов, которые я хочу?

1 Ответ

10 голосов
/ 17 мая 2011

Вы можете установить фабрику сокетов для фактического объекта подключения, который вы хотите использовать, для этого хранилища доверия:

HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
urlConnection.setSSLSocketFactory(sc.getSocketFactory());

Сделайте это вместо вызова setDefaultSSLSocketFactory.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...