6.3.2. 使用 EJB 安全注解


您可以使用 XML 描述符或注释来控制哪些安全角色可以在 EJB 中调用方法。有关使用 XML 描述符的详情,请参考使用 EJB 方法权限

部署描述符中指定的任何方法值都会覆盖注释值。如果在部署描述符中未指定方法值,则使用使用注解设置的值。覆盖粒度以每个方法为基础。

控制企业 JavaBeans 安全性权限的注解

@DeclareRoles
使用 @DeclareRoles 定义要针对哪个安全角色检查权限。如果没有 @DeclareRoles,则从 @RolesAllowed 注释自动构建列表。有关配置角色的详情,请查看 Java EE 教程,它通过分隔安全角色来指定授权用户
@RolesAllowed, @PermitAll, @DenyAll
使用 @RolesAllowed 列出哪些角色可以访问某一方法或方法。使用 @PermitAll@DenyAll 允许或拒绝所有角色使用方法或方法。有关配置注解方法权限的详情,请参考 Java EE 教程,它们通过分隔安全角色来指定授权用户
@RunAs
使用 @RunAs 指定方法在从注释方法发出调用时使用的角色。有关使用注解配置传播的安全身份的信息,请参阅 Java EE 教程传播安全身份(Run-As)。

示例:安全注解示例

@Stateless
@RolesAllowed({"admin"})
@SecurityDomain("other")
public class WelcomeEJB implements Welcome {
    @PermitAll
    public String WelcomeEveryone(String msg) {
        return "Welcome to " + msg;
    }
    @RunAs("tempemployee")
    public String GoodBye(String msg) {
        return "Goodbye, " + msg;
    }
    public String GoodbyeAdmin(String msg) {
        return "See you later, " + msg;
    }
}

在此代码中,所有角色都可以访问方法 WelcomeEveryoneGoodBye 方法在发出调用 时使用 temp employee 角色。只有 admin 角色可以访问方法 GoodbyeAdmin,以及任何其他没有安全注释的方法。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部