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

问题描述:

新年快乐! 为了开始右脚的一年,我试图用springsecurity插件帮助我的应用程序。grails2,springsecurity和静态资源(css,js等)

遇到了插件文档的悲观锁定部分和以下确实锁定都记录下来:

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是阻止。 在此先感谢

+0

springsecurity依赖于WebXml插件。你可以看看你的application.properties并检查你使用的这个插件的哪个版本? – aldrin 2012-01-04 07:09:30

我没有与任何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和图像,确保与他们在没有其他规则相冲突/**对于任何与先不匹配的事物,最终都会成为一种无所不在的行为。试一试,看看它是否更好。

+0

...很好! ,这个url看起来像http:// localhost:8080/MyApp/index.html,所以js和css文件也可以从http:// localhost:8080/MyApp/js/some.js得到,所以第一条规则看起来像'/ **/js/** .....并且一切都很好。我最终为den和prod环境创建了单独的配置。 – vector 2012-01-06 03:01:33

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

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

+0

...不,我的应用程序/ css/some-styles.css例如,我只是检查它:-( – vector 2012-01-04 02:03:55

+0

有趣的,我想知道这是为什么 – 2012-01-04 02:10:37

+0

我很惊讶地看到整个/静态/东西,它当我生成我的项目时,默认情况下是这样工作的。如果我在URL中没有/ static /的请求,它只是重定向到相同的资源,但是使用/ static /。 – 2012-01-04 02:16:13