我正在使用一项仅通过 TLSv1.2 协议建立连接的服务。在 SoapUI
-Dsoapui.https.protocols=TLSv1.2 中:- 此参数工作正常,并且能够从 SOAP UI 工具中的服务获取响应。
在 mule ESB 流上需要类似于上述参数的东西,这允许我的请求在代理期间显式使用 TLSv1.2 协议。
我正在使用 Mule 3.7 CE 和 JDK 7。消息流使用 CXF 代理(cxf:proxy-service)将基于 SOAP 的请求通过 Https 定向到最终客户端。当向 Mule 发送请求时,它会抛出如下异常。
Caused by: org.apache.cxf.ws.policy.PolicyException: These policy alternatives can not be satisfied: {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}TransportBinding: TLS is not enabled {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}HttpsToken {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}TransportToken at org.apache.cxf.ws.policy.AssertionInfoMap.checkEffectivePolicy(AssertionInfoMap.java:179) ~[cxf-rt-ws-policy-2.7.15.jar:2.7.15]
已经尝试通过 tls-default.conf 文件启用协议,但添加系统参数和服务器参数也不起作用。
这是使用安全策略的 wsdl 片段 -
<wsp:Policy wsu:Id="XYSPolicyID">
<wsp:ExactlyOne>
<wsp:All>
<sp:TransportBinding
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<wsp:Policy>
<sp:TransportToken>
<wsp:Policy>
<sp:HttpsToken RequireClientCertificate="false" />
</wsp:Policy>
</sp:TransportToken>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic256 />
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Strict />
</wsp:Policy>
</sp:Layout>
</wsp:Policy>
</sp:TransportBinding>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
任何帮助将非常感激 !!