Grails Spring Security @Secured无法工作



我已经能够在我的应用程序的一个控制器中实现@Secured注释。然而,@Secured('ROLE_ADMIN')将不能在项目中的其他任何地方工作。

它只会在我的程序控制器内的任何地方工作,而不会在其他地方工作。

例如,如果我这样使用它;

@Secured('ROLE_ADMIN')

IDE给了我;这条线上有多个标记Groovy:class Secured不是@Secured中的注释Groovy:无法解析class Secured,无法为

找到class

我甚至尝试检查Spring安全配置文件,以检查注释是否设置正确(似乎它们是)。什么好主意吗?请帮助。

谢谢。

您可能缺少所需的导入。

在需要注释的每个控制器的顶部,使用grails导入Secured。然后,您可以根据需要为类或方法使用注释。

import grails.plugin.springsecurity.annotation.Secured
//import grails.plugins.springsecurity.Secured; - this is in older version, 
//                                                grails 2.0 and older
@Secured(['ROLE_ADMIN', 'ROLE_USER', 'ROLE_SUPERVISOR'])
class myClass {
}

试试这个:

@PreAuthorize("hasRole('ROLE_ADMIN')" )

并在spring配置中添加注释支持:

    <!-- Allow configuration annotation (@Annotation-based configuration)-->
<context:annotation-config />
<!-- Enable scan classes -->
<context:component-scan base-package="com.your.package" />

最新更新