我一直在努力编写java cxf客户端。我能够使用SoapUI成功地与服务进行通信,但我正在尝试编写的java客户端无法正常工作,我相信我已将其缩小到肥皂信封中缺少的内容,而且我不确定如何添加在我的java代码中缺少部分。我为信息过载而道歉,但我们整个星期一直在试图解决这个问题,并希望提供我们所拥有的所有信息。
以下是SoapUI生成的肥皂信封部分,它可以正常工作。
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<ec:InclusiveNamespaces PrefixList="adm soap" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:CanonicalizationMethod>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#TS-5ED789E5A8555DC0E5142609384785925">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<ec:InclusiveNamespaces PrefixList="wsse adm soap" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>YBhVzmSdwOJzvZVOnQorTAEJbfA=</ds:DigestValue>
</ds:Reference>
<ds:Reference URI="#id-5ED789E5A8555DC0E5142609384785929">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<ec:InclusiveNamespaces PrefixList="adm" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>IvgfvKWw5Unr+lPvnkaJO4yI978=</ds:DigestValue>
</ds:Reference>
<ds:Reference URI="#X509-5ED789E5A8555DC0E5142609384785926">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<ec:InclusiveNamespaces PrefixList="" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>hbjh7qYz8XFHSr/FkZ8usg4OwbQ=</ds:DigestValue>
</ds:Reference>
答案 0 :(得分:1)
CXF客户端未签署正文的原因是您没有要告诉它的政策。您需要包含如下所示的策略:
<sp:SignedParts>
<sp:Body/>
</sp:SignedParts>
科尔姆。