WWW-аутентификация / NTLM согласование с использованием HttpClient с текущими учетными данными пользователя

Ищите указатель на то, как получить HttpClient (httpclient 4.3.6) для аутентификации текущего пользователя в службе IIS REST.

Я не могу подключиться без проблем, используя UrlConnection, так как он, кажется, обрабатывает протокол WWW-аутентификации из коробки.

Я перешел на HttpClient, чтобы использовать POST/PUT (FileEntity), состоящий из нескольких частей, и обнаружил, что HttpClient не обрабатывает WWW-аутентификацию, он просто дает сбой с 401, который является первой частью процесса.

Я нашел несколько примеров, которые представляют учетные данные NTLM и т. Д., Но я не хочу захватывать учетные данные, я хочу выполнить запрос, используя текущую идентификацию Windows.

Есть ли какой-нибудь код или API, который я могу использовать для управления этим от моего имени? Я не хочу записывать имя пользователя и пароль, я просто хочу представить учетные данные текущего пользователя. Нужно ли использовать стороннюю библиотеку, такую ​​как SPNEGO?

Спасибо заранее

1 ответ

Решение

Возможно, вы захотите попробовать HttpClient 4.4 (скоро выйдет как GA). Он поддерживает Windows Negotiate, Kerberos и NTLM через SSPI через JNA при работе в ОС Windows. Обратите внимание, что эта функция все еще считается экспериментальной. Ваш пробег может отличаться.

http://hc.apache.org/httpcomponents-client-4.4.x/httpclient-win/examples/org/apache/http/examples/client/win/ClientWinAuth.java

Другие вопросы по тегам