使用Spring Security在@Secured注释中是否允许多个角色

时间:2011-10-27 15:15:40

标签: java spring-security

我想允许对多个用户组访问特定方法。是否可以在Spring Security 3.x中使用@Secured注释做这样的事情?考虑两个组(角色)OPERATOR和USER,此代码是否有效:

    @Secured("ROLE_OPERATOR", "ROLE_USER")
    public void doWork() {
        // do useful processing
    }

2 个答案:

答案 0 :(得分:36)

你快到了。从语法上讲,你需要这样写:

@Secured({"ROLE_OPERATOR", "ROLE_USER"})
public void doWork() { ... }

这是因为您要为注释的单个数组属性提供多个值。 (Java语法特殊情况下处理单个值,但现在你需要“正确”地执行它。)

答案 1 :(得分:16)

@Donal Fellows对Spring应用程序的回答是正确的。但是,如果您在Grails中工作,则需要对列表使用Groovy语法,以便代码看起来像这样

@Secured(["ROLE_OPERATOR", "ROLE_USER"])
public void doWork() { ... }