使用Apache CXF为SOAP客户端指定SSLContext

时间:2016-11-02 19:02:33

标签: java soap cxf soap-client

因此,我们有一个一直在运行的SOAP客户端,并且客户最近将服务器切换为使用带有自签名证书的SSL。现在我想弄清楚如何让我们的客户端使用正确的SSL上下文。我找到了一个相关的问题here;但是我没有看到如何将它绑定到我的代码中(相关部分总结如下 - DCAMethods [Soap]是一个cxf生成的接口)。

File tmp = cacheWsdl(UUID.randomUUID().toString(), new URL(wsdlLocation), anzoSSLContext);
// It would be useful to specify the SSLContext here, but I am working around that.
DCAMethods methods = new DCAMethods(tmp.toURI().toURL()); 
DCAMethodsSoap soapInterface = methods.getDCAMethodsSoap();
// Need to specify the SSLContext for this call.
String rawXmlData = (String) soapInterface.getCopy(connectionId, username, password, documentVersionId, rendition); 

1 个答案:

答案 0 :(得分:1)

我假设您需要使用SSL进行身份验证,而不是签署SOAP消息

CXF对使用客户端证书的SSL连接有自己的支持。它使用Java SSLContext,但所有配置都是通过CXF配置文件完成的

在步骤4中查看我的回答https://stackoverflow.com/a/37610607/6371459,了解如何使用spring文件或以编程方式配置CXF。 SSL支持的完整文档为here