2011-10-20 30 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