【发布时间】:2018-06-25 18:28:58
【问题描述】:
我正在使用 apache HttpClient 版本 4.5.2 开发一个支持基本和 NTLM 身份验证代理的应用程序。用户界面目前不询问用户代理中的身份验证类型,如果用户输入如下域,则假定为 NTLM:
Credentials credentials = null;
if (domain != null && domain.length() > 0) {
credentials = new NTCredentials(username, password, client, domain);
else {
credentials = new UsernamePasswordCredentials(username, password);
}
这种方法在大多数情况下都有效。但是,在 NTLM 代理服务器是工作组的一部分(不是域的一部分)的部署中,域为空,并且根据上述逻辑,使用的凭据是 UsernamePasswordCredentials。由于代理支持 NTLM 并且需要有凭据才能成为 NTCredentials 的实例,因此请求失败。
有没有什么方法可以让这个代码像这样在作为工作组一部分的 NTLM 代理中通用,而无需询问用户身份验证的类型?
【问题讨论】:
标签: java apache-httpclient-4.x ntlm