我已经能够在我的应用程序的一个控制器中实现@Secured注释。然而,@ Secured('ROLE_ADMIN')将无法在项目中的任何其他位置工作。
它只能在我的程序控制器中的任何地方工作,而不会在其他地方工作。
例如,如果我这样使用它;
@Secured('ROLE_ADMIN')
IDE给了我; 此行有多个标记 - Groovy:类Secured不是@Secured中的注释 - Groovy:无法解析类安全,无法找到
类我甚至尝试检查Spring Security Config文件以检查注释是否设置正确(看起来是这些)。 有任何想法吗?请帮忙。
感谢。
答案 0 :(得分:9)
您可能缺少必需的导入。
在您需要注释的每个控制器的顶部,使用安全的grails导入。然后,您可以根据需要使用类或方法的注释。
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 {
}
希望这有帮助。
答案 1 :(得分:0)
试试这个:
@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" />