2011-10-20 55 views
4

我正在創建我的第一個Grails應用程序,並使用spring-security-core和spring-security-ui。我已經鎖定了我在應用程序中創建的控制器,但是有任何未經身份驗證的用戶可以擊中spring-security-ui控制器的事實留下了空隙。限制對這些控制器訪問特定角色的正確方法是什麼?如何鎖定Grails的spring-security-ui控制器?

我正在考慮在每個控制器上運行s2ui-override,然後在類級別實現安全註釋。這是一個合理的方法嗎?

回答

12

我通常使用的應用程序控制器註釋和靜態規則Config.groovy通過像彈簧安全和春季安全的UI插件提供的控制器:

grails.plugins.springsecurity.controllerAnnotations.staticRules = [ 
    '/aclClass/**': ['ROLE_ADMIN'], 
    '/aclSid/**': ['ROLE_ADMIN'], 
    '/aclObjectIdentity/**': ['ROLE_ADMIN'], 
    '/aclEntry/**': ['ROLE_ADMIN'], 
    '/persistentLogin/**': ['ROLE_ADMIN'], 
    '/requestmap/**': ['ROLE_ADMIN'], 
    '/securityInfo/**': ['ROLE_ADMIN'], 
    '/registrationCode/**': ['ROLE_ADMIN'], 
    '/role/**': ['ROLE_ADMIN'], 
    '/user/**': ['ROLE_ADMIN'], 
    '/console/**': ['ROLE_ADMIN'], 

    '/register/**': ['IS_AUTHENTICATED_ANONYMOUSLY'] 
] 
+0

非常感謝,這正是我看着! –

+0

@ataylor我不知道你可以混合靜態規則和控制器註釋!這與數據庫請求圖相同嗎? – gotomanners

+0

不知道,但我假設如此。 – ataylor