当远程服务器证书有问题并且证书 CN 与域名不匹配时,会定期出现问题,我无法影响这一点。为了解决这个问题,有一个解决方案 - 创建和设置虚拟主机名验证器(示例中的 scala 语法):
val hv = new HostnameVerifier() {
def verify(s: String, sslSession: SSLSession) = true
}
如果我可以访问真实连接,我可以为每个连接设置此验证器:
https_connection.setHostnameVerifier(hv)
但是如果我不能直接控制连接,比如使用 wsimport 生成的 SOAP 包装器,我会这样做:
HttpsURLConnection.setDefaultHostnameVerifier(hv)
并将其设置为上课。
问题:如果我有使用与 HTTPS 连接的类的 tomcat webapp,其中一个使用静态方法设置默认验证程序,那么此更改影响的范围是什么?
替代问题:如何在 wsimport 生成的 SOAP Web 服务中设置主机名验证器?