这是请求映射表包含的内容:
'/', '/index', '/index.gsp', '/**/favicon.ico',
'/assets/**', '/**/js/**', '/**/css/**', '/**/images/**',
'/login', '/login.*', '/login/*',
'/logout', '/logout.*', '/logout/*']
但login page
中未加载任何静态资源。每个静态资源请求都会重定向到login/auth
。
答案 0 :(得分:0)
在我的(Spring Security 2.0-RC4)应用程序中,我有:
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
'/' : ['permitAll'],
'/searchable/**' : ['permitAll'],
'/index' : ['permitAll'],
'/index.gsp' : ['permitAll'],
'/assets/**' : ['permitAll'],
'/**/js/**' : ['permitAll'],
'/**/css/**' : ['permitAll'],
'/**/images/**' : ['permitAll'],
'/**/favicon.ico' : ['permitAll']
]
这没有问题。请注意,我使用注释。
看起来好像使用了请求映射,从我读过的文档中你可能会创建这样的请求映射:
for (String url in [
'/', '/index', '/index.gsp', '/**/favicon.ico',
'/assets/**', '/**/js/**', '/**/css/**', '/**/images/**',
'/login', '/login.*', '/login/*',
'/logout', '/logout.*', '/logout/*']) {
new Requestmap(url: url, configAttribute: 'permitAll').save()
}
也许你应该考虑进行保存(failOnError:true)以确保你的requestmap表中确实有数据。
答案 1 :(得分:0)
显然,您使用请求映射。所以看看 Using Spring Security and Requestmap fails in Grails
除了确保您的请求地图没问题之外,您还可以刷新您的请求地图,例如:
new Requestmap(url: '/login/**', configAttribute: 'permitAll').save(flush: true, failOnError: true)