2013-02-11 5 views
3

Я разделил приложение Grails на два приложения - клиентское веб-приложение и отдельное приложение, в котором размещается REST api. Я делаю это, потому что я создаю приложение iOS для работы с моим веб-приложением. Мое приложение использует Spring Security, и я хочу защитить REST api. Я неожиданно нашел очень мало информации о правильном способе сделать это. Должен ли я реализовать oauth с помощью Spring Security, создав приложение API для oauth?Защита REST API в Grails и Spring Security

Любые предложения были бы замечательными.

+1

http://stackoverflow.com/questions/11220359/grails-securing-rest-api-with-oauth2-0 http://stackoverflow.com/questions/7095925/grails-and-oauth http: // stackoverflow .com/questions/7951313/securing-grails-rest-service-for-use-with-mobile-applications – Gregg

+0

Таким образом, в настоящее время полное решение недоступно. – RyanLynch

ответ

3

Да, я просто сделал это для другого приложения. Вы должны сказать, что безопасность весны ведет себя по-другому, когда обращаются к URL-адресам REST.

Добавьте это в config.groovy

Теперь у вас будет две части приложения, которые с проверкой подлинности следующим образом

а) Все, что с/API (при условии, вот как вы ваш REST настроить) в URL-адресе, получает базовую аутентификацию

b) Все остальное проходит через страницу входа.

// making the application more secured by intercepting all URLs 
grails.plugins.springsecurity.useBasicAuth = true 
grails.plugins.springsecurity.basic.realmName = " REST API realm" 
grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap 




//Exclude normal controllers from basic auth filter. Just the JSON API is included 
grails.plugins.springsecurity.filterChain.chainMap = [ 
'/api/**': 'JOINED_FILTERS,-exceptionTranslationFilter', 
'/**': 'JOINED_FILTERS,-basicAuthenticationFilter,-basicExceptionTranslationFilter' 
] 
3

Я работал в течение последних недель на плагин, который охватывает именно то, что вы хотите сделать:

http://grails.org/plugin/spring-security-rest

Посмотрите на него, и дайте мне знать, если у вас есть какие-либо проблема.

+0

Хотя это теоретически может ответить на вопрос, [было бы предпочтительнее] (http://meta.stackoverflow.com/q/8259) включить основные части ответа здесь и предоставить ссылку для справки. –

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