Проблема:
У нас есть API-интерфейс RESTful, основанный на Spring MVC, который содержит конфиденциальную информацию. API должен быть защищен, однако отправка пользовательских учетных данных (комманда user/pass) с каждым запросом нежелательна. В соответствии с рекомендациями REST (и внутренними бизнес-требованиями) сервер должен оставаться без гражданства. API будет потребляться другим сервером в стиле mashup-стиля.
Требования:
-
Клиент отправляет запрос
.../authenticate
(незащищенный URL) с учетными данными; сервер возвращает защищенный токен, который содержит достаточную информацию для сервера для проверки будущих запросов и остается безстоящим. Вероятно, это будет состоять из той же информации, что и Spring Безопасность Знак "Запомнить-меня" . -
Клиент выполняет последующие запросы на различные (защищенные) URL-адреса, добавляя ранее полученный токен в качестве параметра запроса (или, желательно, HTTP-заголовка запроса).
-
Клиент не может хранить файлы cookie.
-
Поскольку мы используем Spring уже, решение должно использовать Spring Безопасность.
Мы стучали головой о стену, пытаясь сделать эту работу, поэтому, надеюсь, кто-то там уже решил эту проблему.
Учитывая описанный выше сценарий, как вы можете решить эту конкретную проблему?