我们必须使用Web服务栈传输二进制数据,并在这个过程中,我们必须签署Web服务请求/响应。

的主要问题是:什么是首选的方式来做到这一点。

如果我们使用MTOM和WS-Security? 从发行CXF-1904 我的结论是有问题,当一个使用MTOM和WS-Security。 CXF和Axis2使用WSS4J,似乎WSS4J不能很好地与数字签名邮件时使用MTOM工作。

有关其他Web服务栈是什么?

有帮助吗?

解决方案 4

http://ws.apache.org/wss4j/attachments.html

WSS4J 2.0.0介绍了签名和加密的SOAP消息附件的支持,通过所述带附件的SOAP(SWA)简介1.1规范。有一个在WSS4J 1.6.x版不支持签名或加密邮件附件。附件可经由任一“行动”为主的方法,或通过WS-安全签名并在WSS4J加密,如覆盖在下面的部分。

其他提示

CXF可以做的WS-Security相关的事情与MTOM一起,但是附件不会结束签名或加密。 SOAP消息本身签名/加密,但附件是不是由于WSS4J限制。 (如果使用SpringWS WSS4J,它将具有相同的限制)

使用与CXF的WSS4JOutInterceptor时,缺省情况下为安全起见,我们关掉MTOM,以确保他们得到内联,然后签名/加密。这是一个安全的选择。所述WSS4JOutInterceptor确实有一个标志(out.setAllowMTOM(真)),这将允许MTOM保持作为附件,但请注意,这些附件将不被“固定”。

简单地将数据发送作为byte[]。如果有大量的数据,则WCF确实支持MTOM。

没有情况下,你应该使用WSE。 WSE是基于ASMX Web服务的顶部。微软曾表示,ASMX技术是“传统”,他们将不会被固定在它的错误。更糟的是,WSE是比较陈旧,并且通过WCF已经被更换。

我建议在阿帕奇CXF API使用Spring-WS的,它更轻,更好,记录和更容易使用。然而,春天-WS是不是JAX-WS标准(这不是一件坏事,在我看来,但你可能会觉得有所不同)。

春季-WS是围绕底层SOAP实现只是一盏灯,春友好的包装,并应在Sun JAX-WS或Apache CXF基础上工作,但我建议你使用Sun的实现。它也有充分MTOM和WS-Security支撑(通过Apache WSS4J)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top