gpt4 book ai didi

java - SOAP SSL 握手

转载 作者:搜寻专家 更新时间:2023-11-01 03:42:36 25 4
gpt4 key购买 nike

我的客户端通过 HTTP 成功地从服务器获得响应。

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

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

我想要在客户端/服务器之间进行 SSL 通信。

在另一个项目中,我成功地从 KeyStoreTrustManagerFactory 创建了 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

}

关于java - SOAP SSL 握手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10848924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com