我有一个具有消息安全性的 WCF Web 服务,并通过使用 Metro (WSIT+jaxws) 的项目使用 Netbeans 创建的 Java Web 应用程序使用它。使用标准 algorithmSuite Basic256 一切正常,但是当我使用服务要求的 Basic256Sha256 时,我收到运行时错误,提示“SOAPFaultException:验证消息安全性时发生错误。”。当我查看服务日志时,它显示“算法套件 Basic256Sha256 不接受算法‘ http://www.w3.org/2000/09/xmldsig#hmac-sha1 ’操作‘SymmetricSignature’。”。问题是我如何将客户端更改为使用 SHA2 (Sha256)。我使用证书作为客户端凭据类型。
WCF 绑定:
<!-- MESSAGE SECURITY -->
<binding name="myMessageBinding">
<transactionFlow />
<security defaultAlgorithmSuite="Basic256Sha256"
authenticationMode="SecureConversation"
messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10">
<secureConversationBootstrap defaultAlgorithmSuite="Basic256Sha256"
authenticationMode="MutualCertificate" requireDerivedKeys="false"
messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"
requireSignatureConfirmation="true" />
</security>
<textMessageEncoding />
<httpTransport />
</binding>