Как выбрать между NTCredentials и UsernamePasswordCredentials в универсальном приложении? - PullRequest
0 голосов
/ 25 июня 2018

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

1 Ответ

0 голосов
/ 26 июня 2018

Можно просто использовать NTCredentials с нулевым доменом в качестве единственного типа учетных данных, независимо от того, являются ли противоположные конечные точки частью домена NT или нет.

...