Spring WS SOAP请求集签名参考URI

时间:2019-04-16 06:52:39

标签: java spring soap spring-ws

需要将自定义引用URI值添加到我的SignedInfo和SecurityTokenReference。

使用Spring-WS和Spring-WS-Security并创建了一个SOAP客户端,该客户端包括相互身份验证,地址标头以及二进制安全性令牌和签名的设置...都可以正常运行...除非Service provider需要我可以将“引用URI”设置为特定值,而不是框架设置的值。

我不确定该怎么做?我正在使用Wss4jSecurityInterceptor创建签名等,但不确定如何定义特定的URI。

我确实有一个自定义的ClientInterceptor,我认为也许可以在那做,但是不确定是否可行。

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="SIG-81fb309">
            <ds:SignedInfo>
               <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                  <ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="SOAP-ENV wsa" />
               </ds:CanonicalizationMethod>
               <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
               <ds:Reference URI="#id-29b0d50b-caa1-422a-b90d-bb6543300ff1">
                  <ds:Transforms>
                     <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                  </ds:Transforms>
                  <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                  <ds:DigestValue>gqH/tJW0lrWqkuugE8cUgkK3ofk=</ds:DigestValue>
               </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue>abcdefg</ds:SignatureValue>
            <ds:KeyInfo Id="KI-624f4c36-5">
               <wsse:SecurityTokenReference wsu:Id="STR-b426">
                  <wsse:Reference URI="#X509-74d2f26b-6e2b-4c07-b290-d4e71a94cd21" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" />
               </wsse:SecurityTokenReference>
            </ds:KeyInfo>

因此,从上方需要设置自定义<ds:Reference/><wsse:Reference/> URI

ds:Reference URI =“ MYCUSTOMURI”和 wsse:参考URI =“ MYCUSTOMURI”

0 个答案:

没有答案