WWW 身份验证/NTLM 使用 HttpClient 与当前用户凭据进行协商

WWW-Authentication / NTLM Negotiate using HttpClient with current user credentials

寻找有关如何获取 HttpClient (httpclient 4.3.6) 以对当前用户进行 IIS REST 服务身份验证的指针。

我可以使用 UrlConnection 毫无问题地连接,因为它似乎开箱即用地处理 WWW 身份验证协议。

我已经转移到 HttpClient 以利用多部分 POST/PUT (FileEntity),我发现 HttpClient 不处理 WWW 身份验证,它只是失败并返回 401,这是第一部分的过程。

我发现了一些展示 NTLM 凭据等的示例...但我不想捕获凭据,我想使用当前 windows 身份执行请求。

是否有一些代码或 API 可以用来代表我管理它?我不想捕获用户名和密码,我只想提供当前用户凭据。我需要使用像 SPNEGO 这样的第三方库吗?

非常感谢

您可能想试用 HttpClient 4.4(即将作为 GA 发布)。当 Windows OS 上的 运行 时,它通过 JNA 通过 SSPI 支持本机 Windows 协商、Kerberos 和 NTLM。请注意,此功能仍处于试验阶段。您的里程可能会有所不同。

http://hc.apache.org/httpcomponents-client-4.4.x/httpclient-win/examples/org/apache/http/examples/client/win/ClientWinAuth.java