Grails 3.0.2 无法解析控制器中的@Secured 注释

Posted

技术标签:

【中文标题】Grails 3.0.2 无法解析控制器中的@Secured 注释【英文标题】:Grails 3.0.2 cannot resolve @Secured annotation in controller 【发布时间】:2015-09-04 05:38:47 【问题描述】:

我尝试将我的应用程序从 Grails 2.4.4 升级到 Grails 3.0.2,但我遇到了 spring 注释问题。

我有控制器,像这样:

import grails.plugins.springsecurity.annotation.Secured

class MyController   

    @Secured(['ROLE_ADMINS_GROUP'])
    def index() 
        // some code
    

depencencies 阻止build.gradle 我有这个:

dependencies 
    provided 'org.springframework.boot:spring-boot-starter-logging'
    provided "org.springframework.boot:spring-boot-starter-actuator"
    provided "org.springframework.boot:spring-boot-autoconfigure"
    provided "org.springframework.boot:spring-boot-starter-tomcat"

    compile "org.springframework.boot:spring-boot-starter-security"

    provided "org.grails:grails-web-boot"
    provided "org.grails:grails-dependencies"
    provided 'javax.servlet:javax.servlet-api:3.1.0'

    testCompile "org.grails:grails-plugin-testing"

    console "org.grails:grails-console"

    compile "org.grails.plugins:wslite:0.7.2.0"

当我尝试编译我的应用程序时,我收到错误消息。

MyController.groovy: 4: unable to resolve class grails.plugins.springsecurity.annotation.Secured
@ line 4, column 1.
import grails.plugins.springsecurity.annotation.Secured
^

【问题讨论】:

请看这个问题:(***.com/questions/29286659/…)。发生该错误是因为您正在使用来自未包含在依赖项中的插件的导入,并且您不能这样做,因为正如上面的答案所解释的,Spring Security 插件与 Grails 3.0 不兼容。我目前不知道如何在这个问题上为您提供帮助,但我认为该问题中的博客文章可以帮助您。 【参考方案1】:

Spring Security Core Plugin 已经更新,现在与 Grails 3.0 兼容,请参阅文档:What's New in Version 3.0

只需在build.gradle 文件的dependencies 块中添加以下依赖项:

compile "org.grails.plugins:spring-security-core:3.0.0.M1"

【讨论】:

以上是关于Grails 3.0.2 无法解析控制器中的@Secured 注释的主要内容,如果未能解决你的问题,请参考以下文章

使用gradle bootRun启动时,redirect()无法在Grails中解析@info.app.name @

无法在 grails 2.3.7 中解析:spring-securty-core:2.0-RC2

图像字节 [] 到 Grails 中的 response.outputStream 导致“响应提交后无法转发”

Grails 以 JSON 格式发送请求并在控制器中解析它

Grails Spring Core 安全插件 - 无法解析类

从 Grails 中的控制器渲染 json 视图