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;
    }
}
Copy to Clipboard Toggle word wrap

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat