java - 无法弄清楚如何使用 java cxf 添加 SOAP 头的一部分

标签 java web-services soap wsdl 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 - 无法弄清楚如何使用 java cxf 添加 SOAP 头的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29041440/

相关文章:

java - 限制 Web 服务访问内部 IP 地址

php - 处理php soap服务器异常

node.js - 用于 Google AdWords API 的 NodeJS 库

java - 在 SOAP header 请求中添加元素以进行身份​​验证

iphone - 如何处理以下 Web 服务响应?

java - 需要帮助处理 json 格式的字符串。 ( java )

java - 据我所知, showinputdialog 返回字符串类型的输出,但它给了我一个错误,它无法将对象转换为字符串

java - 从 Set 绑定(bind)到 <form :select> in SpringMVC

Ruby 和 SOAP 创建 Web 服务代理和命名空间

java - 如何使我的 HashMap 按预期工作?