gpt4 book ai didi

java - 通过 WCF 客户端调用 Java SOAP 1.1 服务

转载 作者:行者123 更新时间:2023-11-30 07:54:40 26 4
gpt4 key购买 nike

为什么用 JAVA 编写的 SOAP1.1 Web 服务可能无法识别 WCF 客户端传递的有效证书?

我们从服务中收到 500 错误,表明该服务不信任我们的证书。这是否与 SOAP 标准的 WCF 实现与 Java 服务期望看到的不同有关?

这是 WCF 配置:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.serviceModel>

<behaviors>
<endpointBehaviors>
<behavior name="ourCert">
<clientCredentials>
<clientCertificate x509FindType="FindBySubjectName" findValue="MyCompany"/>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>

<bindings>
<customBinding>
<binding name="wsHttpSoap11" >
<textMessageEncoding messageVersion="Soap11" />
<httpsTransport requireClientCertificate="true" />
</binding>
</customBinding>
</bindings>

<client>
<endpoint address="https://{site}.com/site.wsdl"
binding="customBinding"
behaviorConfiguration="ourCert"
bindingConfiguration="wsHttpSoap11"
contract="ServiceContract">
</endpoint>
</client>

</system.serviceModel>

<system.net>
<defaultProxy useDefaultCredentials="true" />
</system.net>

</configuration>

最佳答案

证书是根据信任链进行验证的,因此生成框架不相关。另请注意,您使用传输级证书,因此 SOAP 不太可能成为错误源。

我建议您执行以下操作:

  1. 为此服务构建一个可用的 Java 客户端(使用 openssl 生成证书,或者使用您拥有的 jks 格式的证书)。验证客户端是否正常工作。
  2. 将 jks 证书转换为 pfx 并将其与 WCF 客户端一起使用。 WCF 客户端现在也应该可以工作。

如果 WCF 仍然失败,则比较 java 和 wcf 客户端生成的传出 SOAP(您可以使用 fiddler 捕获它)。这可能暗示其他差异(也许您实际上需要消息证书而不是传输,也许您的肥皂版本不匹配,等等)。

关于java - 通过 WCF 客户端调用 Java SOAP 1.1 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32826365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com