我正在创建我的第一个Grails应用程序,并使用spring-security-core和spring-security-ui。我已经锁定了我在我的应用程序中创建的控制器,但是任何未经身份验证的用户都可以访问spring-security-ui控制器这一事实还有一个漏洞。将访问权限限制为特定角色的正确方法是什么?
我正在考虑在每个控制器上运行s2ui-override,然后在类级别实现安全注释。这是一个合理的方法吗?
答案 0 :(得分:12)
我通常使用Config.groovy
中的应用程序控制器和静态规则的注释作为spring-security和spring-security-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']
]