我想允许对多个用户组访问特定方法。是否可以在Spring Security 3.x中使用@Secured注释做这样的事情?考虑两个组(角色)OPERATOR和USER,此代码是否有效:
@Secured("ROLE_OPERATOR", "ROLE_USER")
public void doWork() {
// do useful processing
}
答案 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() { ... }