例如,如果我使用以下代码是因为我想更改验证证书的方式。
trm = 一些信任管理器
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[] { trm }, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
然后,这将为将来建立的所有 https 连接设置 SSLContext,而不管是什么线程。什么是控制范围的最干净的方法,以便我只为我想要的那些调用设置它?
最佳答案
您可以在要使用此信任存储的实际连接对象上设置套接字工厂:
HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
urlConnection.setSSLSocketFactory(sc.getSocketFactory());
这样做而不是调用
setDefaultSSLSocketFactory
。关于java - 如何控制 SSLContext 范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6025525/