我正在研究一個使用Grails的相當大的Web應用程序,我們正在嘗試實施角色安全性的使用。系統設置完成後,grails基本上授予對CAS認證用戶的完全角色訪問權限,但是當我爲每個控制器方法創建特定角色時,它完全忽略角色並繼續允許完全訪問經過身份驗證的用戶。interceptUrlMap被覆蓋?
這是我在Config.groovy中正在做:
grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap
grails.plugins.springsecurity.interceptUrlMap = [
"/controllerName/create": [ "hasRole('ROLE_CREATE')" ],
"/controllerName/remove": [ "hasRole('ROLE_DELETE')" ],
"/controllerName/listEntries": [ "hasRole('ROLE_VIEW')" ],
"/controllerName/listAllEntries": [ "hasRole('ROLE_VIEW')" ],
"/controllerName/getDefaultCategories": [ "hasRole('ROLE_VIEW')" ]
]
的UrlConfig.goovy不具有controllerName的條目。
當應用程序調用controllerName中的create,remove或其他服務時,用戶是否具有指定的角色並不重要。它只是表現在那裏沒有映射。
是否有可能其他設置覆蓋interceptUrlMap?如果是這樣,我應該從哪裏開始看?
我要指出,我們必須使用Grails的1.3.8
更新:我試過了小寫的事情下文提到的,它仍然失敗。但是,如果我只是做了一個頂層(「/ controllername/**」)控制器入口(相對於在控制器中指定一個動作,它限制了訪問)。不幸的是,我們想要執行「/ controllername/create」類型的安全性。有什麼想法?
「用戶是否具有指定的角色並不重要。它只是表現爲沒有映射那裏「 - 我很抱歉,但到底發生了什麼?你得到一個404或者你不能訪問頁面403錯誤? –
該方法功能正常。沒有錯誤 –