【问题标题】:Java client for SOAP web service with NTLM authentication用于带有 NTLM 身份验证的 SOAP Web 服务的 Java 客户端
【发布时间】:2011-08-02 11:52:33
【问题描述】:

我花了很多日日夜夜试图找到一个合适的 Java 框架,该框架可以连接到使用 Negotiate/NTLM 身份验证的 Microsoft Dynamics CRM。我使用各种 HTTP 协议处理程序尝试了有关 Stackoverflow 和其他资源的所有现有建议,包括 JAX-WS、Axis2、CXF。他们中没有一个人按预期工作。目前最好的方法是 Axis2/commons-httpclient-3.1,我可以在其中使用 NTLM 摘要至少跟踪所有三个阶段,但是目标 IIS 仍然拒绝使用 401 Unauthorized 进行身份验证。 Apache CXF — 都具有内置的 Java6 NTLM 支持和 jCIFS,一些人建议作为补救措施,也没有工作,因为前者在第二个 401 响应上失败(虽然它应该发送第三个请求,根据协议),后者尝试从空输入流中读取响应代码并失败。

那么,问题是是否有人成功地从 Java 6 平台掌握了受 NTLM 保护的 SOAP Web 服务?

【问题讨论】:

标签: java axis2 cxf ntlm


【解决方案1】:

我希望其他人能加入进来,因为我对这个领域的了解已经有好几年了,也许不是最好的建议 - 特别是,我只使用过 commons-httpclient 3 并且没有使用过任何较新的软件包承诺正确执行 NTLM/NTLMv2。

您可能已经注意到,commons-httpclient 3 的 NTLM 身份验证代码仅支持 NTLM,而不支持较新的 NTLMv2 协议。我对这个问题的解决方案是使用 commons-httpclient 3 并将 NTLM 身份验证代码替换为支持 NTLMv2 的解决方案。幸运的是,NTLMv2 规范是published by Microsoft。老实说,实施起来并不难,但当然现在你必须自己维护它,这可能由于多种原因而不可取。

【讨论】:

  • 请检查我上面的自我回答
【解决方案2】:

我忘了说我自己确实找到了解决方案。线索是用 Jespa+jCIFS 替换标准 Java 协议栈,并制作一些小补丁以使其与 JAX-WS 一起使用。

【讨论】:

  • 您能详细说明上述解决方案吗?
猜你喜欢
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
  • 2014-08-21
  • 1970-01-01
相关资源
最近更新 更多