Я пытаюсь сделать HttpClient для службы, поддерживающей NTLM и базовую аутентификацию. В моем случае 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)) Серьезный: [WARN] HttpAuthenticator - Ошибка аутентификации NTLM: учетные данные не могут быть использованы для аутентификации NTLM: org.apache.http.auth.UsernamePasswordCredentials
Я просто хочу, чтобы он отправил заголовок HTTP Authentication: Basic ...
. Я тестировал это вне любых фреймворков Java HTTP (например, используя необработанный ssl-сокет с вручную созданным HTTP-запросом), поэтому, похоже, это какая-то проблема HTTP Java / Apache, когда он пытается делать то, о чем я не просил и на самом деле не делаю. не хочу даже пытаться это сделать ...