首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring WSS "wsse:security“标签

Spring WSS "wsse:security“标签
EN

Stack Overflow用户
提问于 2012-02-18 03:46:47
回答 1查看 1.8K关注 0票数 0

我正在使用Spring在SOAP消息上签名,这个doc是准确的。我的配置与文档中描述的配置没有区别。一切正常,我正在对传出消息进行签名,消息头看起来像这样

代码语言:javascript
复制
<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>

然而,问题是服务器期望类似这样的内容

代码语言:javascript
复制
<SOAP-ENV:Header>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-1">
    ...
    </ds:Signature>
</SOAP-ENV:Header>

所以,服务器不喜欢我的申请。我无法更改服务器上的任何内容,因此我需要找到解决方案。如果使用WSDL生成请求,则请求中没有wsse:Security标记,因此服务器期望的内容与其WSDL一致。

我在谷歌上搜索了几个小时,但一无所获。有什么方法可以移除wsse:Security标签吗?我能用Spring解决这个问题吗?或者我应该实现一些自定义代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-21 05:58:55

好吧,我不确定这是否是最好的答案,但这就是我所发现的。

Spring WS安全性关注WS- security的三个不同领域:身份验证、数字签名和符合WS-Security的加密/解密。

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

我不知道如何使用Spring WS来做这件事,所以我使用Apache WSS4J包中的XMLSignature实现了它,这与Spring用来对消息进行签名是相同的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9334416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档