2016-03-28 174 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()'], 

提供的文件表示,使用的/ **和**是相同的,但是,通過執行使用這兩種實驗中,它顯然是不。

相關問題