【发布时间】:2014-05-20 09:26:26
【问题描述】:
我正在尝试创建一个简单的应用程序,实际上是一个概念验证,我的最终用户将仅通过 RESTful 服务与服务器交互。我的用户界面将使用 angularjs 向这些服务发送 ajax 请求,然后在浏览器中呈现响应。
为了创建安全层,我正在尝试配置 spring 安全插件,但我的配置存在问题。在这一刻,这是我的配置:
grails.plugin.springsecurity.userLookup.userDomainClassName = 'mymoney.Subject'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'mymoney.SubjectRole'
grails.plugin.springsecurity.authority.className = 'mymoney.Role'
grails.plugin.springsecurity.useBasicAuth = true
grails.plugin.springsecurity.basic.realmName = "Restricted Access"
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
'/**': ['permitAll']
]
grails.plugins.springsecurity.filterChain.chainMap = [
'/rest/**': 'JOINED_FILTERS,-exceptionTranslationFilter',
'/**': 'JOINED_FILTERS,-basicAuthenticationFilter,-basicExceptionTranslationFilter'
]
如果我保持这样的配置,那么所有人都可以使用一切,甚至是 /rest/** 资源。我的猜测是 chainMap 之前的 staticRules 把所有东西都弄乱了。但问题是,如果我删除它,那么一切都属于我的基本身份验证...
所以我真正想要的是 /rest/** 下的每个资源都将受到基本身份验证的保护,并且可以在根上下文 ('/') 中访问的我的 SPA(单页应用程序)将可用于每一个都没有任何身份验证...
我在这里错过了什么?
【问题讨论】:
标签: rest grails spring-security