2013-07-24 3 views
0

Моя задача - использовать запрос отправки, а затем получить XML.java mvc авторизация без весенней безопасности

пример: запрос: /api/ext/data.xml ответ: некоторые XML

Приложение использует Spring MVC, так что я просто написал метод контроллера, и все работает нормально, но я также необходимо реализовать авторизации. Это приложение не использует Spring безопасности.

Что мне делать? Должен ли я использовать сеанс для сохранения данных авторизации пользователя?

+0

Если требуется авторизация и аутентификация, я рекомендую использовать пружинную защиту. Я уверен, что это будет лучшее решение, чем то, что вы могли бы реализовать самостоятельно. – Bart

+0

Это зависит от сложной модели безопасности, в которой вы нуждаетесь. Иногда Basic Auth в Tomcat + https будет достаточно, иногда вам приходится использовать весеннюю безопасность или сиро. – user1516873

ответ

5

Вы все равно должны смотреть на Apache Shiro и/или Spring Security. Однако Spring Security (и безопасность контейнеров в этом отношении) не очень дружелюбны для безопасности REST API. Для весны вам нужно будет реализовать пользовательский AuthenticationEntryPoint, чтобы избежать перенаправления на 403. Сиро может быть немного проще для REST API.

Если вы хотите сделать это самостоятельно, без зависимостей или сложностей, вам следует изучить вопрос о создании Servlet Filter и/или использовать защиту контейнера. Компромиссом может быть этот SecurityFilter project. Однако, если вам нужны Роли, ACL и т. Д., Вам следует серьезно пересмотреть Сиро или Весеннюю безопасность.

0

А как реализовать свою собственную модель HmacSha1 (подписанные запросы), как Amazon Web Services?

Основы: Клиент подписывает запрос с помощью ключа секретного доступа (SAK) и заканчивает передачу данных, получая код hmac. Затем клиент отправляет через POST запрос плюс некоторые заголовки, такие как hmac-код и истекает время и все, что вам нужно. Затем сервер получает ваш запрос в контроллере (или перехватчике), подписывает его с вашим SAK и временем истечения срока действия и сравнивает получение hmacs для проверки пользователя.