Grails Spring Security @Secured无法正常工作

时间:2011-12-03 02:52:32

标签: spring grails spring-security

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

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

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

@Secured('ROLE_ADMIN')

IDE给了我; 此行有多个标记      - Groovy:类Secured不是@Secured中的注释      - Groovy:无法解析类安全,无法找到

我甚至尝试检查Spring Security Config文件以检查注释是否设置正确(看起来是这些)。 有任何想法吗?请帮忙。

感谢。

2 个答案:

答案 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" />