相当于 wsimport 的 org.apache.axis.components.net.SunFakeTrustSocketFactory
Equivalent of org.apache.axis.components.net.SunFakeTrustSocketFactory for wsimport
当我使用 Apache Axis 生成 Web 服务客户端存根时,我通过调用以下方法使用客户端存根禁用了我的代码中的服务器证书信任检查
AxisProperties.setProperty("axis.socketSecureFactory",
"org.apache.axis.components.net.SunFakeTrustSocketFactory");
如何禁用由 运行 wsimport
生成的客户端存根的信任检查?
我在运行一些测试代码时使用这个。
class 中发生的所有事情都是提供伪造的 trust store manager, that trusts anything. Knowing that, you can use this article 并将某些东西放在一起。
-
public class EasyTrustManager implements X509TrustManager {
public void checkClientTrusted(X509Certificate[] chain, String authType) {
//do nothing
}
public void checkServerTrusted(X509Certificate[] chain, String authType) {
//do nothing
}
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
}
然后将您的信任管理器提供给 SSLContext
, just like axis was doing:
的一个实例
SSLContext sCtxt = SSLContext.getInstance("SSL");
sCtxt.init(null, new TrustManager[]{new EasyTrustManager()}, new java.security.SecureRandom());
通过调用 HttpsURLConnection#setDefaultSSLSocketFactory
设置自定义上下文,因为您的所有 Web 服务调用都基于 HttpsURLConnection
的基础实例。此调用将通过 SSLContext#getContext
为 all https 调用
设置上下文
HttpsURLConnection.setDefaultSSLSocketFactory(sCtxt.getSocketFactory());
当我使用 Apache Axis 生成 Web 服务客户端存根时,我通过调用以下方法使用客户端存根禁用了我的代码中的服务器证书信任检查
AxisProperties.setProperty("axis.socketSecureFactory",
"org.apache.axis.components.net.SunFakeTrustSocketFactory");
如何禁用由 运行 wsimport
生成的客户端存根的信任检查?
我在运行一些测试代码时使用这个。
class 中发生的所有事情都是提供伪造的 trust store manager, that trusts anything. Knowing that, you can use this article 并将某些东西放在一起。
-
public class EasyTrustManager implements X509TrustManager { public void checkClientTrusted(X509Certificate[] chain, String authType) { //do nothing } public void checkServerTrusted(X509Certificate[] chain, String authType) { //do nothing } public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } }
然后将您的信任管理器提供给
的一个实例SSLContext
, just like axis was doing:SSLContext sCtxt = SSLContext.getInstance("SSL"); sCtxt.init(null, new TrustManager[]{new EasyTrustManager()}, new java.security.SecureRandom());
通过调用
设置上下文HttpsURLConnection#setDefaultSSLSocketFactory
设置自定义上下文,因为您的所有 Web 服务调用都基于HttpsURLConnection
的基础实例。此调用将通过SSLContext#getContext
为 all https 调用HttpsURLConnection.setDefaultSSLSocketFactory(sCtxt.getSocketFactory());