安全圣杯弹簧安全控制器



我在我的Grails项目中使用spring安全插件。为了保护 URL,我正在使用 interceptUrlMap .

我的用户类和角色类分别User.groovyRole.groovy。基于这些类,s2-quickstart脚本生成了UserController.groovyRoleController.groovy

当我想保护UserController.groovy时出现问题。我的要求是我不能允许所有用户创建新用户。因此,需要为具有适当角色权限的用户阻止UserController的某些操作。

但是,无论我如何尝试限制访问,我都看到UserController的所有操作始终是可访问的。

谁能解释一下我哪里出错了。任何帮助都非常感谢。

最好使用注释,而不是在 Config.groovy 中定义规则。这在两个方面有所帮助,即首先,热重载将始终有效,其次,您可以在 Config.groovy 中轻松覆盖任何规则。这意味着您可以在 Config.groovy 中使用注释和纯规则。

所以在 Config.groovy 中更改它

grails.plugin.springsecurity.securityConfigType = "Annotation"

并开始保护您的控制器或以下操作:

import grails.plugin.springsecurity.annotation.Secured
@Secured(["ROLE_MRU"])
class UserController {
    def edit() {
        // action code
    }
    @Secured(["ROLE_ADMIN"])
    def show() {
        // action code
    }
}

我已经设法解决了这个问题。问题是我在应用程序仍在运行时编辑 Config.groovy。未进行热部署。

重新启动应用程序后,该功能开始工作。

感谢您的所有帮助。

最新更新