2014-01-21 2 views
0

Как вызвать RESTful webservice (из Java - с использованием RESTEasy/Apache HttpClient), для которого требуется аутентификация NTLM в Active Directory, без необходимости снова вводить данные пользователя (домен , имя пользователя, пароль) - пользователь уже прошел аутентификацию в Windows?Клиент Java RESTful [RESTEasy или Apache HttpClient] - NTLM с другой стороны

GET http://some_server/restapi/books 

Это прекрасно работает с веб-браузеров или даже библиотеки java.net.URL - пользователь не получает запрос на ввод учетных данных, без ошибок 401 аутентификации - просто 200 OK возвращается.

Как сделать то же самое с помощью клиента Apache HttpClient или RESTEasy?

ответ

0

Вы можете сделать это с помощью этой структуры;

  1. Когда пользователь сначала введите имя пользователя и пароль, вы можете проверить, пользователь деталь в активной директории, и если успех, создать access_token по , используя имя пользователя и пароль. Это может быть шифрование sha-256 (см. here для создания sha-256)
  2. Сохраните это access_token на свой db и дайте ему время истечения.
  3. После успешного создания access_token ответьте, что токен доступа для пользователя .
  4. Теперь вы можете использовать access_token для обслуживания запросов

Вы должны сохранить маркер доступа на стороне клиента, как локальное хранилище. Точно так же, как если вы используете HTTP-клиент , вы можете указать, что access_token в заголовке.