如何使用
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
http://schrepfler.blogspot.com.br/2009/06/relaxing-ssl-validation-for-jaxws.html
我正在使用这个解决方案,在主类的静态块上调用两个静态方法,如下所示:
static { SSLUtilities.trustAllHostnames(); SSLUtilities.trustAllHttpsCertificates(); }
希望这可以帮助