Grails从2.2.1升级到2.3.4 @Secured Annotation

Bra*_*ner 4 grails groovy spring-security

我刚刚将我的grails应用程序从2.2.1升级到2.3.4,主要是成功并将spring spring安全插件从1.2.7.3升级到2.0-RC2.但是,我收到关于spring安全插件的错误(spring-security-core:2.0-RC2).

    Annotation @grails.plugin.springsecurity.annotation.Secured is not allowed on element FIELD
Run Code Online (Sandbox Code Playgroud)

我认为它可能与仅限于能够注释方法而不是动作的新限制有关,但我注释的方法不是动作......所以...

这是带注释的控制器(尽管所有注释都会显示该消息):

    @Secured(['IS_AUTHENTICATED_FULLY', 'ROLE_SHOW'])
        def history = {
            def instanceList = super.history(Perm.get(params.id))
            [instanceList: impInstanceList]
        }
Run Code Online (Sandbox Code Playgroud)

tim*_*tes 11

我相信你需要改变它

    @Secured(['IS_AUTHENTICATED_FULLY', 'ROLE_SHOW'])
    def history() {
        def instanceList = super.history(Perm.get(params.id))
        [instanceList: impInstanceList]
    }
Run Code Online (Sandbox Code Playgroud)

即将其更改为闭包定义中的方法

  • Grails 2.0允许将旧式闭包作为操作,但我没有添加对带注释的闭包的支持,因为考虑到方法与闭包的好处,它会比必要的工作更多. (7认同)