如何控制SSLContext范围

时间:2011-05-17 02:12:11

标签: java http ssl

如果我使用以下代码,例如,我想更改证书的验证方式。

trm =某个信托经理

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

然后,这将为将来创建的所有https连接设置SSLContext,而不管是什么线程。控制范围的最简洁方法是什么,以便我只为那些我想要的调用设置它?

1 个答案:

答案 0 :(得分:10)

您可以在要使用此信任库的实际连接对象上设置套接字工厂:

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

这样做而不是调用setDefaultSSLSocketFactory