我正在使用seam 3和cdi创建一个应用程序。我从一个例子开始,对于这样的安全部分:
public @ConversationScoped class UserAction {
public @Admin void deleteUser(String userId) {
// code
}
}
有效。如果我的用户具有管理员角色,那么他有权访问。但是,如何实现用户可能有一个规则或另一个规则的情况?例如:如果我的用户是@Admin或@Student,他可以访问它,但如果他是@Teacher他不能。
感谢。
凯利
答案 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.
}
}