【发布时间】:2012-10-04 12:07:02
【问题描述】:
我需要对需要 NTLM 身份验证的 URL 执行 HTTP GET。我可以在 MacBook Pro 上使用 Firefox 或 Chrome 访问该 URL。浏览器要求输入用户名/密码组合并且它可以工作。我现在正在尝试使用 HttpClient 从 Groovy 做同样的事情。我关注了NTLM support guide,但我总是得到401 Unauthorized 的回复。回复里还有这句话:
您无权使用 您提供的凭据,因为您的 Web 浏览器正在发送 未配置 Web 服务器的 WWW-Authenticate 标头字段 接受。
我在这段代码中尝试了服务器名和域的各种组合(远程windows pc不在域上),但我总是得到相同的响应。
httpclient.getCredentialsProvider().setCredentials(
new AuthScope("myserver", -1),
new NTCredentials("username", "password", "MYSERVER", "MYDOMAIN"));
有人遇到过同样的问题并设法解决了吗?请注意,这是一个在后台使用 IIS 的外部程序,所以我认为我不能在那里更改任何设置。
编辑:
与我所说的不同,我设法将 IIS 中的安全设置更改为接受 BASIC 身份验证,所以我不再遇到问题了。
【问题讨论】:
标签: java ntlm apache-httpclient-4.x