Axis1.X 绕过证书验证_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Axis1.X 绕过证书验证

Axis1.X 绕过证书验证

 2018/11/5 21:27:45  蓝色0度  程序员俱乐部  我要评论(0)
  • 摘要:参考文章:http://www.cnblogs.com/zhukunrong/p/3791409.html?utm_source=tuicool&utm_medium=referral我的问题是由于服务器网站升级协议到TLSv1.2。PS:JDK1.6不支持TLSv1.2,网上有说可以通过第三方包支持,但是这种方式很难与Axis集成。所以我只能升级到JDK1.7另外,我们的老古董程序使用的是Axis1.4框架。importjava.io.IOException;importjava
  • 标签:
参考文章:http://www.cnblogs.com/zhukunrong/p/3791409.html?utm_source=tuicool&utm_medium=referral

我的问题是由于服务器网站升级协议到TLSv1.2。
PS:JDK1.6不支持TLSv1.2,网上有说可以通过第三方包支持,但是这种方式很难与Axis集成。
所以我只能升级到JDK1.7
另外,我们的老古董程序使用的是Axis1.4框架。

import java.io.IOException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Hashtable;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

import org.apache.axis.components.net.JSSESocketFactory;

public class MyTLSSocketSecureFactory extends JSSESocketFactory {

public MyTLSSocketSecureFactory(Hashtable attributes) {
super(attributes);
// TODO Auto-generated constructor stub
}

// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {

@Override
public X509Certificate[] getAcceptedIssuers() {
// TODO Auto-generated method stub
return null;
}

@Override
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
// TODO Auto-generated method stub

}

@Override
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
// TODO Auto-generated method stub

}
} };

@Override
public void initFactory() throws IOException {
SSLContext context;
try {
context = SSLContext.getInstance("TLSv1.2");
context.init(null, trustAllCerts, new java.security.SecureRandom());
sslFactory = context.getSocketFactory();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (KeyManagementException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

在调用WebService前使用:
AxisProperties.setProperty("axis.socketSecureFactory", MyTLSSocketSecureFactory.class.getName());
上一篇: 一文归纳总结分布式架构的那些事 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名