缝3安全和角色

时间:2011-12-16 19:17:36

标签: security seam3

我正在使用seam 3和cdi创建一个应用程序。我从一个例子开始,对于这样的安全部分:

public @ConversationScoped class UserAction {
  public @Admin void deleteUser(String userId) {
   // code
  }
}

有效。如果我的用户具有管理员角色,那么他有权访问。但是,如何实现用户可能有一个规则或另一个规则的情况?例如:如果我的用户是@Admin或@Student,他可以访问它,但如果他是@Teacher他不能。

感谢。

凯利

1 个答案:

答案 0 :(得分:0)

我认为您需要create your own authorizer method来执行您需要的特定角色检查:

import org.jboss.seam.security.annotations.Secures;

public class Restrictions {      
  public @Secures @Admin boolean isAdmin(Identity identity) {
    return identity.hasRole("admin", "USERS", "GROUP");
    // Here, you would put in logic for "if my user is
    //     @Admin or @Student he can access this, but 
    //     if he is a @Teacher he cannot" instead.
  }
}