3

我已将我的 Grails 应用程序拆分为两个应用程序 - 一个面向客户的 Web 应用程序和一个托管 REST api 的单独应用程序。我这样做是因为我正在构建一个 iOS 应用程序来配合我的网络应用程序。我的应用程序使用 Spring Security,我想保护 REST api。我惊讶地发现关于正确方法的信息很少。我应该使用 Spring Security 实现 oauth,从而使我的 API 应用程序成为 oauth 提供者吗?

任何建议都会很棒。

4

2 回答 2

3

在过去的几周里,我一直在开发一个插件,该插件完全涵盖了您想要做的事情:

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

看看它,如果你有任何问题,请告诉我。

于 2014-01-16T16:29:14.123 回答
3

是的,我只是为另一个应用程序这样做。当访问 REST URL 时,您必须告诉 spring security 以不同的方式表现。

将此添加到您的config.groovy

现在,您将拥有应用程序的两个部分,它们通过以下方式进行身份验证

a) URL 中带有 /api 的任何内容(假设您就是这样设置 REST 的),获取基本身份验证

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'
]
于 2013-09-10T19:10:53.500 回答