java - WWW-Authentication/NTLM 使用 HttpClient 与当前用户凭据进行协商

标签 java iis apache-httpclient-4.x www-authenticate

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

我可以使用 UrlConnection 进行连接,因为它似乎可以立即处理 WWW 身份验证协议(protocol)。

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

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

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

提前非常感谢

最佳答案

您可能想尝试 HttpClient 4.4(即将作为 GA 发布)。在 Windows 操作系统上运行时,它通过 SSPI 通过 JNA 支持 native Windows Negotiate、Kerberos 和 NTLM。请注意,此功能仍被视为实验性的。您的里程可能会有所不同。

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

关于java - WWW-Authentication/NTLM 使用 HttpClient 与当前用户凭据进行协商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28082553/

相关文章:

UNC 共享 : is it problematic? 上的 IIS 站点

iis - Visual Studio 未创建虚拟目录

iis - 无法在本地计算机上浏览在家中托管的网站

Java Apache HTTP 401 响应返回正确的凭据

java - 使用 Google-api-java-client 向博主发布内容

java - 静态文件上传(文本或 HTML)会导致 Google App Engine 中完全部署吗?

java - 如果在上下文中添加 AbstractSecurityWebSocketMessageBrokerConfigurer 的实现,应用程序无法启动

java - 使用 HttpClient 4.1 解码分块数据

java - Android 中的 apache 的 HttpClient?

java - SWT 中的 RowLayout 在字体基线上垂直对齐