Seam 3 安全和角色

发布于 2024-12-21 12:36:58 字数 336 浏览 1 评论 0原文

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

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

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

谢谢。

凯莉

I am creating an application using seam 3 and cdi. I started with an example, for the security part like this:

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

It works. If my user has the admin role, then he has access. But how can I implement a situation where the user may have one rule or the other? For example: if my user is @Admin or @Student he can access this, but if he is a @Teacher he cannot.

Thanks.

Kelly

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

影子的影子 2024-12-28 12:36:58

我认为您需要创建您自己的授权者方法 执行您需要的特定角色检查:

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.
  }
}

I think you need to create your own authorizer method which does the specific role checks you need:

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.
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文