Аутентификация RESTful через Spring

Проблема:
У нас есть Spring RESTful API на основе MVC, который содержит конфиденциальную информацию.API должен быть защищен, однако отправка учетных данных пользователя (комбо пользователя/пароля) с каждым запросом нежелательна. В соответствии с рекомендациями REST (и внутренними бизнес-требованиями) сервер должен оставаться без состояния. API будет использоваться другим сервером в стиле mashup.

Требования:

  • Клиент отправляет запрос на .../authenticate(незащищенный URL) с учетными данными; server возвращает безопасный токен, который содержит достаточно информации, чтобы сервер мог проверять будущие запросы и оставаться без сохранения состояния. Вероятно, он будет состоять из той же информации, что и Spring Security Remember-Me Token.

  • Клиент делает последующие запросы к различным (защищенным) URL-адресам, добавляя ранее полученный токен в качестве параметра запроса (или, что менее желательно, заголовка HTTP-запроса).

  • Клиент не может хранить файлы cookie.

  • Поскольку мы уже используем Spring, решение должно использовать Spring Security.

Мы бились головой о стену, пытаясь заставить это работать, так что, надеюсь, кто-то уже решил эту проблему.

Учитывая приведенный выше сценарий, как вы могли бы решить эту конкретную проблему?

252
задан PraveenKumar Lalasangi 2 October 2019 в 20:16
поделиться