Netbeans java web服务客户端使用消息安全性和algorithmSuite Basic256Sha256使用WCF服务

Netbeans java web服务客户端使用消息安全性和algorithmSuite Basic256Sha256使用WCF服务,wcf,netbeans,message,sha256,sha2,Wcf,Netbeans,Message,Sha256,Sha2,我有一个具有消息安全性的WCFWeb服务,并从一个使用Metro(WSIT+jaxws)项目的Netbeans创建的JavaWeb应用程序中使用它。使用标准algorithmSuite Basic256,所有这些都可以正常工作,但当我使用Basic256Sha256(这是服务的一项要求)时,我会收到一个运行时错误,上面写着“SOAPFaultException:验证消息安全性时出错。”。当我查看服务日志时,它会说“算法套件Basic256Sha256不接受“SymmetricSignature”

我有一个具有消息安全性的WCFWeb服务,并从一个使用Metro(WSIT+jaxws)项目的Netbeans创建的JavaWeb应用程序中使用它。使用标准algorithmSuite Basic256,所有这些都可以正常工作,但当我使用Basic256Sha256(这是服务的一项要求)时,我会收到一个运行时错误,上面写着“SOAPFaultException:验证消息安全性时出错。”。当我查看服务日志时,它会说“算法套件Basic256Sha256不接受“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>

返回不支持的符号签名错误算法,因为Basic256Sha256使用

作为用于签名生成和验证的算法

作为应用于已签名对象的摘要算法,以创建或验证xml签名的哈希

作为的对称签名有效

  • 违约
  • 基本256
  • 基本C256RSA15
使用

作为摘要算法

您的Java客户机似乎没有使用相同的算法对SOAP消息进行签名,请检查从Java客户机接收的消息中的SignedInfo SignatureMethod元素,以了解更多信息

算法=”http://www.w3.org/2000/09/xmldsig#hmac-sha1“


以确保客户端未使用相同的算法进行签名。

您可以发布用于签名邮件的客户端代码或方法吗?