我应该使用 basicHttpBinding 还是 WsHttpBinding 来创建安全的 Java 客户端

本文关键字:安全 创建 Java 客户端 WsHttpBinding basicHttpBinding 还是 我应该 | 更新日期: 2023-09-27 18:33:54

我今天花了几个小时试图让一个非常简单的WCF服务和Java客户端相互通信。我只成功地让服务和客户端使用基本 HttpBinding 进行通信,而没有启用安全性。

我想通过网络对内容进行加密。我尝试使用这个的基本HttpBinding配置:

  <basicHttpBinding>
    <binding name="bindingConfig">
      <security mode="Transport">
        <transport clientCredentialType="Windows" />
      </security>
    </binding>
  </basicHttpBinding>

现在这几乎会导致大量问题,因为当我的服务托管在 IIS 上时,我在尝试在本地测试 WCF 服务(使用 WCF 测试客户端的 VS2012)、使用任何浏览器浏览到 WSDL 以及使用 Svcutil/wsimport 实用程序生成客户端时出现证书错误。

我不明白的是,当我使用 WsHttpBinding 并使用 Transport/Windows 安全性时,我从未遇到过证书问题,为什么会这样?

在任何人有想法之后,我实现我的最简单方法是什么?

我应该使用 basicHttpBinding 还是 WsHttpBinding 来创建安全的 Java 客户端

WCF和Java的兼容性有点复杂。

首先,你在Java中使用哪个框架?

其次,在 WCF 端,最好使用自定义绑定而不是 wsHttpBinding。您可以使用此工具轻松转换绑定。通过您的绑定,它将提供:

<customBinding>
  <binding name="NewBinding0">
    <textMessageEncoding MessageVersion="Soap11" />
    <httpsTransport authenticationScheme="Negotiate" />
  </binding>
</customBinding>

现在,您只需配置 Java 端或调整 WCF 配置,即可启用 SOAP12,而不是 SOAP11。让我知道它是否有效。