Soap Spring WSS“wsse:security”标签

Soap Spring WSS“wsse:security”标签,soap,spring-ws,signing,Soap,Spring Ws,Signing,我正在签署一条关于使用Spring的SOAP消息,这就是。我的配置与文档中描述的配置没有区别。一切都正常,我正在为即将发送的邮件签名,邮件头看起来像 <SOAP-ENV:Header> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <ds:Signa

我正在签署一条关于使用Spring的SOAP消息,这就是。我的配置与文档中描述的配置没有区别。一切都正常,我正在为即将发送的邮件签名,邮件头看起来像

<SOAP-ENV:Header>
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
        <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-1">
        ...
        </ds:Signature>
    </wsse:Security>
</SOAP-ENV:Header>
但是,问题是服务器期望的是

<SOAP-ENV:Header>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-1">
    ...
    </ds:Signature>
</SOAP-ENV:Header>
所以,服务器不喜欢我的请愿书。我无法更改服务器上的任何内容,因此需要找到解决方案。如果使用soapUI生成请求,则请求中没有wsse:Security标记,因此服务器期望的内容与其WSDL一致


我在谷歌上搜索了几个小时,运气不好。是否仍要删除wsse:Security标记?我可以用Spring解决这个问题,还是应该实现一些自定义代码?

嗯,我不确定这是否是最好的答案,但这是我发现的

SpringWS-security关注WS-security的三个不同领域:身份验证、数字签名和加密/解密

这三个领域中的两个,身份验证和数字签名,都包含在本文中,因此,如果您只想在不加密/解密的情况下对消息进行签名和/或身份验证,您可以直接使用XML签名,而不是将其作为WS-Security的一部分。这是我的情况,客户只是直接期望,而不是在


我没有找到如何使用Spring WS来完成这一切,所以我使用Apache WSS4J包实现了它,这与Spring签署消息的方式相同。

我发现该标记与Spring无关,因为Spring将此任务委托给org.Apache.WS.security包。我想问题完全在服务器端。