Може ли httpclient да създаде заглавка за оторизация, използвайки текущия влязъл потребител автоматично като java URLConnection?

всичко:

-- актуализиран --

Клиентската машина и машината, работеща със защитен ресурс, са в един и същ домейн и влезлият потребител може да получи достъп до ресурса със своя потребител/парола.

Когато използвате httpclient за достъп до защитен уеб ресурс в интранет, можем да предоставим NTCredentials с Windows потребител/парола и името на домейна. Но има ли начин да получите потребителя/паролата за Windows по подразбиране и името на домейна за текущия потребител в тази машина. Така че няма нужда да искаме от потребителя NTCredentials на потребителя, можем да използваме влезлите NTCredentials на потребителя за достъп до защитения ресурс.

URLConnection може да получи достъп до ресурса успешно: когато URLConnection получи неупълномощена грешка 401 за първата заявка и открие, че отдалеченият сървър поддържа nltm, URLConnection ще създаде токен и ще добави http заглавката като: Оторизация: NTLM TlRMTVNTUAABAAAAB7IIogwA. Тогава заявката ще успее.

Чудя се дали можем да направим това с httpclient? Може ли httpclient автоматично да добави токена за оторизация, използвайки информация за влязъл потребител?

Благодаря много за всеки отговор и помощ.


person jeffery.yuan    schedule 03.04.2013    source източник
comment
Така не работи защитата на NTLM. Може да искате да започнете да четете ръководството NTLM поддръжка в HttpClient за описание на това как да интегрирате Apache HttpComponents с NTLM защита.   -  person Perception    schedule 03.04.2013
comment
Благодаря за отговора ви, прочетох статията: http://hc.apache.org/httpcomponents-client-ga/ntlm.html и някои примери, трябва да създаде NTCredentials с потребител, парола и име на домейн. Но изискването на моя проект е да използвам идентификационните данни на текущия влязъл потребител за достъп до отдалечен защитен ресурс. Има ли начин да получите или използвате идентификационните данни на текущия влязъл потребител?   -  person jeffery.yuan    schedule 05.04.2013
comment
Опитах URLConnection в java, той може да получи достъп до ресурса успешно: когато URLConnection получи неупълномощена грешка 401 за първата заявка и открие, че отдалеченият сървър поддържа nltm, URLConnection ще създаде токен и ще добави http заглавката като: Authorization: NTLM TlRMTVNTUAABAAAAB7IIogwA. Чудя се дали можем да направим това с httpclient? Може ли httpclient автоматично да добави токена за оторизация, използвайки информация за влязъл потребител?   -  person jeffery.yuan    schedule 05.04.2013


Отговори (1)


Внедряването на HttpURLConnection от Oracle използва собствена функционалност, специфична за Windows OS чрез JNI, за да получи достъп до текущия потребителски контекст на сигурността. Човек може да използва същата техника и с HttpClient, но това ще я направи зависима от изпълнението на JRE на Oracle и API за сигурност на Windows.

person ok2c    schedule 06.04.2013
comment
Благодаря, олег. Така че за моя проект, ако потребителят не посочи потребителско име/парола, ще използвам URLConnection. Ако потребителят зададе потребителско име/парола, мога да използвам Apache httpClient. - person jeffery.yuan; 10.04.2013