【发布时间】:2016-06-07 00:32:32
【问题描述】:
我正在尝试使用托管在 Datapower 设备上的肥皂服务。到目前为止,发送soap服务和接收者对以下xml的摘要计算不同。
用于创建摘要值的转换
<ds:Reference URI="#TS-f3c103e9-1897-43d8-8cf6-274bdb647678">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="wsse soap"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>1rjXQQWVMM5KBWY8uswUynk6PCk=</ds:DigestValue>
</ds:Reference>
被引用的元素。
<wsu:Timestamp wsu:Id="TS-f3c103e9-1897-43d8-8cf6-274bdb647678">
<wsu:Created>2016-02-24T15:32:12.693Z</wsu:Created>
<wsu:Expires>2016-02-24T15:37:12.693Z</wsu:Expires>
</wsu:Timestamp>
上述元素的命名空间应用于根节点
- xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
- xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
发送上述 XML 可以正常工作(从 Java soap 客户端库创建)。但是,当我在节点中使用 sha1 消化相同的元素时,会得到不同的消化值。
我试图在计算摘要值之前发现 java 在转换中做了什么。如果我能弄清楚它实际发送给它的 sha1 方法的内容,我可以更正 node 中的代码来做同样的事情。
鉴于上述参考元素,在使用 sha1 散列之前转换后的输出 xml 是什么?
【问题讨论】:
标签: java xml node.js web-services soap