无法弄清楚如何使用 java cxf 添加一段肥皂 header
Cannot figure out how to add a section of soap header using java cxf
我一直在努力编写 java cxf 客户端。我能够使用 SoapUI 成功地与服务通信,但是我尝试编写的 java 客户端无法正常工作,我相信我已经将它缩小到 soap 信封中缺少的东西,我不知道如何在我的 java 代码中添加缺失的部分。对于信息过载,我深表歉意,但我们整个星期都在努力解决这个问题,我想展示我们拥有的所有信息。
这是 SoapUI 生成的 soap 信封部分,它可以正常工作。
<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>
CXF 客户端不签署正文的原因是您没有政策告诉它这样做。您需要包含如下所示的政策:
<sp:SignedParts>
<sp:Body/>
</sp:SignedParts>
冷
我一直在努力编写 java cxf 客户端。我能够使用 SoapUI 成功地与服务通信,但是我尝试编写的 java 客户端无法正常工作,我相信我已经将它缩小到 soap 信封中缺少的东西,我不知道如何在我的 java 代码中添加缺失的部分。对于信息过载,我深表歉意,但我们整个星期都在努力解决这个问题,我想展示我们拥有的所有信息。
这是 SoapUI 生成的 soap 信封部分,它可以正常工作。
<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>
CXF 客户端不签署正文的原因是您没有政策告诉它这样做。您需要包含如下所示的政策:
<sp:SignedParts>
<sp:Body/>
</sp:SignedParts>
冷