解密失败在SoapFaults上

时间:2016-02-09 11:27:53

标签: cxf wss4j

我有一个CXF客户端来命中实现WSS4J的外部CXF端点。我能够成功地将格式良好的消息传递给端点。如果我的请求说缺少一些必填字段,我会收到安全性异常并且实际的SoapFault会丢失,因为生成SoapFault时响应未加密。

我们如何修复此场景 - 可以设置输入以处理响应中实际存在的WSS4J操作。这是我的入站安全配置

<bean id="inbound-security" class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
    <constructor-arg>
        <map>
            <entry key="action" value="Timestamp Signature Encrypt" />
            <entry key="signaturePropFile" value="${encryptionPropFile}" />
            <entry key="decryptionPropFile" value="${signaturePropFile}" />
            <entry key="passwordCallbackClass" value="WSS4JPasswordCallback" />
        </map>
    </constructor-arg>
</bean>

2 个答案:

答案 0 :(得分:0)

将拦截器添加到入站故障拦截器链以及“jaxws:inFaultInterceptors”(不仅仅是入站拦截器链)。

科尔姆。

答案 1 :(得分:0)

我能够通过使用安全策略而不是配置WSS4JInInterceptor来解决这个问题 - WSDL包含了安全策略,并且没有为SoapFaults设置加密。