我试图将消息从BizTalk 2010发送到由供应商管理的Java Web服务(即我无法控制它)。我有BizTalk配置为使用WCF适配器。 Java Web服务的WS-Security要求要求我在标题中发送一些安全元素,无论我使用什么绑定,我都无法通过BizTalk立即生成 。特别是,我试图一起生成一个Signature和UsernameToken 。
以下是SOAP请求的外观(使用SOAP UI生成,私有信息隐藏):
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<ds:Signature Id="SIG-5C3CC030C4E11C6430144952223388427" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#id-REFERENCEID">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<InclusiveNamespaces PrefixList="java" xmlns="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>DigestValue</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
SignatureValue
</ds:SignatureValue>
<ds:KeyInfo Id="KI-KEYID">
<wsse:SecurityTokenReference wsu:Id="STR-TOKENID">
<wsse:KeyIdentifier EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">
KeyIdentifier
</wsse:KeyIdentifier>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
<wsse:UsernameToken wsu:Id="UsernameToken-TOKENID">
<wsse:Username>username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">nonce</wsse:Nonce>
<wsu:Created>2015-12-07T21:03:53.876Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
我在网上看到过几篇文章,人们一直在努力解决这个问题,但似乎大部分文章都来自2012年左右。有没有人能够解决这个问题/有没有人有任何提示来解决这个问题?