【发布时间】:2016-04-20 14:47:35
【问题描述】:
目前我正在使用.NET 的 Java Web 服务。在这里,我使用 WSE 3.0 来使用 Java 安全 Web 服务。但我得到了错误:
“抛出异常:无法检索引用的安全令牌”
在比较 java SOAP Request 和 .NET SOAP Request.here 之后,我发现我正在发送正确的 .net SOAP 标头,但我发送的正文是错误的。任何人都可以帮助我如何发送安全的正文请求表 .net 客户端
下面,我给出了 Java 和 .Net SOAP XML 数据:
.Net 请求 XML SOAP 正文(现在我正在发送)
<soap:Body wsu:Id="Id-165fc268-5917-43b9-aed2-091fb948c508">
<xenc:EncryptedData Id="Enc-20dbd181-a655-4843-882a-b8b36b9d028d" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<xenc:CipherData>
<xenc:CipherValue>UO32nmFhQZ4JBNuWk6xTz20FpjfPWQqr1F5zqOf7uQ6hBJzfndGAJvb/l/MgT0x7P2ZTiEeNj51ZDYKDZrQ1Ax3SCJyzacX6suemUVWmMaVGtJ8DJPqka7T3xDkWpgVlDmc1am1B+E7SXdfd9RIINv+JpYhF5Fx4m3ZaeYvPQLVrvF3Rpvya2L1mC/LeHVYwM/ep6x5f9tQnz50UASBHIA==</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedData>
</soap:Body>
JAVA 请求的 XML SOAP 正文(来自 java Web 服务器)
<soap:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-2">
<xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Id="ED-5" Type="http://www.w3.org/2001/04/xmlenc#Content">
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsse11="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd" wsse11:TokenType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey">
<wsse:Reference URI="#EK-7FBF3DBE856BC8B2BC14527661038314"/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
<xenc:CipherData>
<xenc:CipherValue>SQ0nnx45EPDL5uoFRzeTjJy6+FhaCZTK/3LRz5DrPM4qAQ2JzARNiLmuj61YSHd6nOMVy1QmPCqH5gG6PIIN8x47r10fzOkuisxpcOaUdnFL3bY55AvfyL6fUbSfcp+fl3qw6SAB3QF0AR1thqpfKBttBv8b7GxbpApCZg6TWaw8nD7G7dVmtdpDBJN7uQSQJu5ibdBGLzbVoF9YtliYH1mbdswL4KVJtZKUl2UAQqDtbxgXAkKtNwNyq4pt7N+HVhX00mZMxiTE0IyRyfgQhwp6afsTvsGVmdKxcpWtRoOFmmIHhrTeXJal/jJAI84mmg5EV44TJezFFbEyqsL+vhhR/N6oITaa
</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedData>
</soap:Body>
知道如何将与 Java 相同的请求从 .Net Web 服务或 WCF 发送到服务器吗?
【问题讨论】:
-
您有 X.509 证书吗?通常它以 pfx 文件的形式出现?
-
是的,我在我的代码中使用 x.509 证书
-
我们希望看到您的客户端代码。看起来它找不到证书或您使用了错误的证书。
-
嗨,kosala w 感谢您的回复,我正在使用正确的证书,即 clientinvoke.pfx 我得到了正确的响应表单服务器但出现了一些错误“缺少参考令牌”..所以我只检查整个 sopa输入跟踪文件中服务器的响应我发现我在
中丢失了任何想法如何在侧体元素中传递这两个标签....? -
正如我所说,我们需要查看您的客户端调用。您可能根本没有在 Web 服务调用中包含证书。