【发布时间】:2014-12-12 10:59:48
【问题描述】:
我正在尝试为支持 NTLM 和基本身份验证的服务创建一个 HttpClient。在我的情况下,NTLM 将不起作用,因为 HttpClient 所在的机器与服务位于不同的域下(感谢公司决定非常缓慢地迁移正在使用的域的名称......)。但是,HttpClient 似乎仍然会尝试使用它。
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(
username, password));
HttpClient client = HttpClientBuilder.create()
.setDefaultCredentialsProvider(credentialsProvider).build();
HttpGet method = new HttpGet(uri);
HttpResponse response = client.execute(method);
严重:[WARN] HttpAuthenticator - NEGOTIATE 身份验证错误:未提供有效凭据(机制级别:未提供有效凭据(机制级别:找不到任何 Kerberos tgt)) 严重:[WARN] HttpAuthenticator - NTLM 身份验证错误:凭据不能用于 NTLM 身份验证:org.apache.http.auth.UsernamePasswordCredentials
我只希望它发送 HTTP Authentication: Basic ... 标头。我已经在任何 Java HTTP 框架之外对此进行了测试(例如,使用带有手动创建的 HTTP 请求的原始 ssl 套接字),所以它似乎是一些 Java/Apache HTTP 问题,它试图做我没有要求的事情,而且真的不这样做'不想让它尝试做...
【问题讨论】:
标签: java http apache-httpclient-4.x