具有 NTLM 身份验证的 SOAP Web 服务的 Java 客户端

2023-12-13

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

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


我希望其他人能插话,因为我对这个领域的了解已经有好几年了,也许不是最好的建议——特别是,我只使用过 commons-httpclient 3,而没有任何新的软件包承诺这样做NTLM/NTLMv2 正确。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有 NTLM 身份验证的 SOAP Web 服务的 Java 客户端 的相关文章

随机推荐