加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何在JAX-WS客户端中禁用证书验证?

发布时间:2020-05-22 15:27:11 所属栏目:Java 来源:互联网
导读:如何使用 javax.xml.ws.Service在JAX-WS客户机中禁用证书验证? 我尝试在SSLSocketFactory中创建一个全信任的TrustManager,并尝试将其绑定到BindingProvider SSLContext sc = SSLContext.getInstance(SSL); sc.init(null, trustAllCerts, new java.secu

如何使用 javax.xml.ws.Service在JAX-WS客户机中禁用证书验证?

我尝试在SSLSocketFactory中创建一个全信任的TrustManager,并尝试将其绑定到BindingProvider

SSLContext sc = SSLContext.getInstance("SSL"); 
sc.init(null,trustAllCerts,new java.security.SecureRandom()); 

Map<String,Object> ctxt = ((BindingProvider) wsport ).getRequestContext(); 
ctxt.put(JAXWSProperties.SSL_SOCKET_FACTORY,sc.getSocketFactory());

但我仍然得到异常:无法找到有效的认证路径到请求的目标

但是,当我使用它时它工作

HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

还是有办法使javax.xml.ws.Service使用我创建的HttpsURLConnection?

解决方法

我在这里找到一个解决方案:
http://schrepfler.blogspot.com.br/2009/06/relaxing-ssl-validation-for-jaxws.html

我正在使用这个解决方案,在主类的静态块上调用两个静态方法,如下所示:

static {
    SSLUtilities.trustAllHostnames();
    SSLUtilities.trustAllHttpsCertificates();
}

希望这可以帮助

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读