【问题标题】:Issue with Connecting to WCF Service using Metro - HTTP Works, HTTPS does not使用 Metro 连接到 WCF 服务的问题 - HTTP 有效,HTTPS 无效
【发布时间】:2012-03-10 06:12:04
【问题描述】:

我正在使用正在构建的 Java 客户端连接到 WCF Web 服务。其他人已经成功构建了 WCF 客户端以连接到此服务。通过 HTTP 可用的 WSDL 提供消息级安全性。通过 HTTPS 可用的 WSDL 使用 TLS 和消息级别安全性。我知道在消息级别安全性之上使用 TLS 基本上是双重加密,但这是一个关键要求。

由于我可以正确连接到 HTTP 服务,我相信我已经解决了所有信任存储和密钥存储问题。

我正在使用 Metro 2.1.1 连接到服务。我已经在 Eclipse 和 Netbeans 中构建了客户端。我从 HTTP 站点获取 WSDL,并使用 wsimport(带有 -extensions 标志)成功构建并执行客户端。

当我使用 HTTPS 站点获取 WSDL 时,我可以再次成功构建两个客户端。但是当我执行它们时 - 我收到以下错误:

    Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: An error occurred when verifying security for the message.
at com.sun.xml.ws.fault.SOAP12Fault.getProtocolException(SOAP12Fault.java:225)
at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:122)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:140)
at $Proxy43.request(Unknown Source)

这两个 WSDL(一个通过 HTTP 获取,另一个通过 HTTPS 获取)之间的唯一区别是 WSDL 中对 HTTPS:// 与 HTTP:// 的引用。

我无法轻松访问 WCF 服务日志 - 通常在我请求一组日志和可以查看它们之间有 3-6 小时的延迟。

我的问题是有没有人遇到过类似的情况 - 我在这里公然遗漏了什么?我可以在 NetMon 或 Wireshark 跟踪中查找问题是否存在问题?这几天我一直在为此苦苦挣扎 - 任何帮助都将不胜感激。

【问题讨论】:

    标签: java wcf ssl java-metro-framework


    【解决方案1】:

    如果您有权访问服务配置,请尝试在您使用的端点上禁用安全上下文:

    <message establishSecurityContext="False" clientCredentialType="UserName"/>
    

    您可以阅读有关安全上下文令牌 (SCT) 的更多信息:

    【讨论】:

      猜你喜欢
      • 2019-07-01
      • 2017-07-05
      • 1970-01-01
      • 2021-09-28
      • 2013-11-02
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多