Я разрабатываю приложение, которое поддерживает как базовый, так и прокси-сервер аутентификации NTLM, используя apache HttpClient версии 4.5.2. В настоящее время пользовательский интерфейс не спрашивает пользователя о типе аутентификации в прокси-сервере и предполагается, что это 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, который является частью рабочей группы, не спрашивая пользователя о типе аутентификации?