【问题标题】:WCF Metro interop message not encryptedWCF Metro 互操作消息未加密
【发布时间】:2012-05-02 08:05:46
【问题描述】:

我一直在尝试为 WCF 服务创建基于 Metro 的客户端,同时使用传输和消息安全以及相互证书身份验证。

我让每种模式单独工作,而不是一起工作 - 即只有消息安全工作,正文被加密并通过 HTTP 发送,或者只有 SSL 工作,消息没有加密。同时激活它们会使客户端通过 SSL 发送未加密的消息。

这是我当前的绑定:

  <customBinding>
    <binding name="customBind">
      <transactionFlow />
      <security authenticationMode="MutualCertificate" allowSerializedSigningTokenOnReply="true" defaultAlgorithmSuite="Basic128" includeTimestamp="true" securityHeaderLayout="Lax">
      </security>
      <textMessageEncoding messageVersion="Soap11" />
      <httpsTransport requireClientCertificate="false"/>
      <!--<httpTransport />-->
    </binding>
  </customBinding>

使用 httpTransport,消息被加密,使用 httpsTransport,它们不是。服务器响应“验证消息的安全性时发生错误。”,因为消息未加密。 Metro 客户端失败并显示“com.sun.xml.wss.XWSSecurityException: Security Requirements not meet - No Security header in message”。

有没有人遇到过这种情况?关于为什么会发生这种情况的任何线索,或者我可以探索的可能的事情?附加信息:使用 Netbeans 7.1.1 和 Metro 2.2。

【问题讨论】:

  • 如果通过 SSL 发送,您是否需要加密邮件?
  • 不幸的是,我愿意 - 安全要求表明传输和消息安全都是必需的。
  • 你能发布你正在尝试的绑定配置吗?应该只是在安全属性上指定 mode="both" 的情况。此外,Metro 支持 ws-* 标准,所以您有什么理由不使用 wsHttpBinding?

标签: java wcf interop wcf-security java-metro-framework


【解决方案1】:

我设法通过从 wsdl 中删除 TransportBinding 元素并让 Java 处理传输安全而不是 Metro。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    相关资源
    最近更新 更多