2016-03-28 130 views
0

我正在使用Grails 3和Spring Security Plugin进行身份验证。Grails 3 Spring Security Plugin

当我打到手动下面的网址,在浏览器中:

http://localhost:8080/cool-0.1/

我得到的登录页面,我可以成功地验证,推断我正确输入我的用户名/密码组合。

问题:

如果我浏览到我的网页通过原始链接,没有正斜杠(IE:http://localhost:8080/cool-0.1而不是http://localhost:8080/cool-0.1/)我完全绕过安全性,我能看到主页而无需验证。 (是的,我清楚我的缓存,关闭所有窗口等)

我的网址映射包含以下代码:

"/"(controller: "home", action: "index") 

我的春节安全groovy文件中包含以下代码:

grails.plugin.springsecurity.controllerAnnotations.staticRules = [ 
    [pattern: '/login/**', access: ['permitAll']], 
    [pattern: '/error', access: ['permitAll']], 
    [pattern: '/**', access: 'isAuthenticated()'] 
] 
grails.plugin.springsecurity.filterChain.chainMap = [ 
    [pattern: '/assets/**', filters: 'none'], 
    [pattern: '/**/js/**', filters: 'none'], 
    [pattern: '/**/css/**', filters: 'none'], 
    [pattern: '/**/images/**', filters: 'none'], 
    [pattern: '/**/favicon.ico', filters: 'none'], 
    [pattern: '/**', filters: 'JOINED_FILTERS'] 
] 

我没有看到我在这里失去的东西。为什么这两种情况会导致问题? Spring Security Grails 3的文档没有提到解决这个问题。

回答

0

的解决方案是使用**图案:

[pattern: '**', access: 'isAuthenticated()'], 

提供的文件表示,使用的/ **和**是相同的,但是,通过执行使用这两种实验中,它显然是不。

相关问题