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

java – Soap SSL握手

发布时间:2020-12-15 02:34:41 所属栏目:Java 来源:网络整理
导读:我的客户端通过HTTP成功获得服务器的响应. SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance();SOAPConnection connection = sfc.createConnection();SOAPMessage soapMessageResponse = connection.call(soapRequest,new URL(serviceLocatio
我的客户端通过HTTP成功获得服务器的响应.

SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance();
SOAPConnection connection = sfc.createConnection();

SOAPMessage soapMessageResponse = connection.call(soapRequest,new URL(serviceLocation));

我想要客户端/服务器之间的SSL通信.

在另一个项目中,我从KeyStore和TrustManagerFactory成功创建SSLSocketFactory以进行SSL握手.

如何在Web服务客户端中使用SSLSocketFactory代码使客户端SSL通信成功调用服务器.

解决方法

我很确定它会使用默认的SSLContext.您可以使用SSLContext.setDefault()更改它.

SSLContext c = SSLContext.getInstance("SSL");
TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
tmf.init(yourKeystore);
TrustManager tm = tmf.getTrustManagers()[0];
tm.
c.init(null,tm,null);

以下是字符串参数的一些other values.

如果需要更完整的控制,可以实现自己的SSLContext子类,它返回自己的SSLSocketFactory实现,并将SSLContext设置为默认值:

public class MySSLContext extends SSLContext {

    private SSLContext wrapped;
    private SSLSocketFactory mySocketFactory;

    public MySSLContext(SSLContext toWrap,SSLSocketFactory mySocketFactory) {
        wrapped = toWrap;
        this.mySocketFactory = mySocketFactory;
    }

    public SSLSocketFactory getSocketFactory() {
        return mySocketFactory;
    }

    public SSLSessionContext getClientSessionContext() {
        return wrapped;
    }

    // other delegates

}

(编辑:李大同)

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

    推荐文章
      热点阅读