使用WCF客户端的Java JAX-WS服务

Ada*_*t27 5 wcf ws-security web-services jax-ws

是否可以使用JAX-WS创建WebService,然后使用这样的绑定由WCF客户端使用?

<bindings>
        <basicHttpBinding>
            <binding name="CaseObjectServicePortBinding" >
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <security mode="TransportWithMessageCredential">
                    <transport clientCredentialType="Certificate"/>
                    <message clientCredentialType="Certificate" />
                </security>
            </binding>

        </basicHttpBinding>
    </bindings>
Run Code Online (Sandbox Code Playgroud)

我现在创建了这样一个没有WSIT的服务,只是一个简单的服务,并且想要忽略传入SOAP消息中的"Security"头.但它失败了:

"无法为权限为'xxxxxxxxxx'的SSL/TLS建立安全通道."

如果我改变:

<security mode="TransportWithMessageCredential">
                    <transport clientCredentialType="Certificate"/>
                    <message clientCredentialType="Certificate" />
                </security>
Run Code Online (Sandbox Code Playgroud)

至:

<security mode="Transport">
                    <transport clientCredentialType="Certificate"/>
                    <message clientCredentialType="Certificate" />
                </security>
Run Code Online (Sandbox Code Playgroud)

一切都完美无瑕.有什么想法我做错了什么?

Toa*_*yen 0

答案是肯定的。您可以使用BasicHttpBinding 或 WsHttpBinding

发生错误的原因是,当您使用TransportWithMessageCredential时,WCF 客户端将对通过线路发送的消息施加额外的安全性,该消息只能与 WCF 服务互操作。

一旦将其更改为Transport,则仅应用传输安全性(使用证书的 SSL),因此客户端和服务都可以理解如何相互通信。

干杯。