2013-11-16 2 views
-1

У меня есть приложение Grails, в котором у меня есть немного REST API, который используется моим мобильным клиентом и веб-приложением администратора, я должен предоставить защиту на основе формы для веб-приложения, и для каждого клиента вызова службы REST будет отправлен токен, который Я генерирую, когда клиентские вызовы аутентифицируются путем передачи имени пользователя и пароля.Как защитить REST API в Grails, используя Spring Security?

Для этого я использовал плагин Spring Security для Grails, поэтому мое приложение для администратора защищено, как и ожидалось. Но как я могу защитить свой REST API, в идеале я бы хотел поставить @Secured (['ROLE_API']) для всего REST API.

+1

Обычно это делается через OAuth2 - https://github.com/adaptivecomputing/grails-spring-secu rity-oauth2-provider –

ответ

0

Вы можете добавить /rest/ в начале всех RESTSs URL, а затем в Config.groovy добавить

grails.plugins.springsecurity.controllerAnnotations.staticRules = [ 
     '/': ['permitAll'], 
     '/rest/**': ['ROLE_API'], 
] 

У меня была аналогичная проблема здесь: Grails, Spring Security and Angular JS - How to protect URLs?

Проверьте также руководство Spring Security http://grails-plugins.github.io/grails-spring-security-core/ раздел Настройка запроса Mappings для защиты URL-адресов

+0

@ Кими, я думаю, что правило «/ **» соответствует всем. Я прав? В моем приложении у меня есть правила: '/' ['allowAll'], '/ admin/**': ['ROLE_ADMIN'], и он отлично работает. У меня нет доступа к чему-либо с "/ admin" в url без входа в систему. – akn

Смежные вопросы