2012-01-01 111 views
1

新年快樂! 爲了開始右腳的一年,我試圖用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

回答

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和圖像,確保與他們在沒有其他規則相沖突/**對於任何與先不匹配的事物,最終都會成爲一種無所不在的行爲。試一試,看看它是否更好。

+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

1

是靜態資源目錄得到的<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