grails2,springsecurity和静态资源(css,js等)

时间:2012-01-01 23:05:02

标签: grails spring-security

新年快乐! 为了在右脚开始今年,我正试图在springsecurity插件的帮助下强行关注我的应用程序。

遇到插件文档的Pessimistic Lockdown部分,以下内容确实将所有内容锁定:

grails.plugins.springsecurity.rejectIfNoRule = true

...但我怎样'解锁'css,js和图像文件?我能够解锁我需要公开访问的所有控制器和操作,而不是css文件。

目前我的Config.groovy有这个:

grails.plugins.springsecurity.rejectIfNoRule = true;

grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap

grails.plugins.springsecurity.interceptUrlMap = [

        '/admin/**' : ['ROLE_ADMIN', 'IS_AUTHENTICATED_FULLY'],
        '/css/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
        '/login/auth': ['IS_AUTHENTICATED_ANONYMOUSLY'],
        '/*':               ['IS_AUTHENTICATED_ANONYMOUSLY']
]

'/ *'使主页可见,但css被阻止。 提前致谢

2 个答案:

答案 0 :(得分:1)

在生成的HTML中,静态资源目录是否在<context-name>/static/路径下提供,即my-app/static/css而不是my-app/css?我一直在研究Grails 2.0应用程序,并注意到css,images和js目录现在似乎默认移动到该路径,这与Grails 1.3不同。

我认为这是导致URL更改的新资源插件,但尚未使用2.0中的spring-security插件来验证这是否是问题。

答案 1 :(得分:1)

我对grails.plugins.springsecurity.rejectIfNoRule = true没有任何经验,但我相信下面的interceptUrlMap是等价的

grails.plugins.springsecurity.interceptUrlMap = [
    '/js/**':                               ['IS_AUTHENTICATED_ANONYMOUSLY'],
    '/css/**':                              ['IS_AUTHENTICATED_ANONYMOUSLY'],
    '/images/**':                           ['IS_AUTHENTICATED_ANONYMOUSLY'],
    '/login/auth':                          ['IS_AUTHENTICATED_ANONYMOUSLY'],
    '/':                                    ['IS_AUTHENTICATED_ANONYMOUSLY'],
    '/admin/**':                            ['ROLE_ADMIN', 'IS_AUTHENTICATED_FULLY'],
    '/**':                                  ['IS_AUTHENTICATED_FULLY']

将js,css和images放在顶部可以确保没有其他规则与它们发生冲突,最后/**充当了首先不匹配的任何内容。给它一个镜头,看看它是否更好。