CXF Soap WS Client存根.pfx证书身份验证

时间:2017-10-10 16:45:42

标签: java soap cxf jax-ws

SOAP Webservice作为后端托管并使用IBM Datapower Http相互处理进行身份验证,我使用wsmpl文件和相关模式使用wsimport生成 java客户端存根代码,也有.pfx私钥。

从Mozilla Firfox,如果我在请求中附加证书,我可以访问Datapower,但没有得到响应,这是正常的。 从SOAPUI,我能够在使用证书时获得响应,并使用自定义SOAP标头附加Soap请求。

只需使用jax-ws Http连接,当我将SOAP请求作为xml文件附加时,我就可以将响应作为流返回。

我正在尝试使用Apache CXF附加.pfx文件,我还使用system.properties来设置javax.net.ssl.keyStore属性。

我想知道有没有办法将证书(.pfx)从java附加到CXF客户端。另外,如何在Soap标头中操作自定义标头元素。

javax.xml.ws.WebServiceException:org.apache.cxf.service.factory.ServiceConstructionException:无法创建服务。

PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径

使用

Map<String, Object> outProps = new HashMap<String, Object>();
 outProps.put(WSHandlerConstants.ACTION, 
                WSHandlerConstants.TIMESTAMP + " " + 
                WSHandlerConstants.SIGNATURE + " " + 
                WSHandlerConstants.ENCRYPT);
outProps.put(WSHandlerConstants.ACTION, "Signature");
        outProps.put(WSHandlerConstants.USER, "myAlias");
        WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
        cxfEndpoint.getOutInterceptors().add(wssOut);

0 个答案:

没有答案