Java 组中的用户,组具有权限,EJB3支持带有注释的模型吗?

Java 组中的用户,组具有权限,EJB3支持带有注释的模型吗?,java,jakarta-ee,ejb,Java,Jakarta Ee,Ejb,我对在我们公司的安全模型中使用EJB3的安全注释感兴趣。如问题标题中所述:用户是组的一部分,并且每个组都分配了一个特权列表,这允许在不影响组成员身份的情况下将特权动态分配给组 然而,就我所见,EJB3.x只支持用户-->角色|组模型(实际上与将组视为角色的情况相同) 我的目标是: @Stateless public class secureEJB { ... @HasPrivilege(Privileges.ABLE_TO_MAKE_ARBITRARY_DATABASE_CHAN

我对在我们公司的安全模型中使用EJB3的安全注释感兴趣。如问题标题中所述:用户是组的一部分,并且每个组都分配了一个特权列表,这允许在不影响组成员身份的情况下将特权动态分配给组

然而,就我所见,EJB3.x只支持用户-->角色|组模型(实际上与将组视为角色的情况相同)

我的目标是:

@Stateless
public class secureEJB {
    ...
    @HasPrivilege(Privileges.ABLE_TO_MAKE_ARBITRARY_DATABASE_CHANGES)
    public void causeMayhem();
    ...
}
如果EJB3不支持此模型,那么有人知道支持此模型的库吗


请并感谢您。

EJB透视图/视图/接口/规范仅由用户和角色组成。EJB不定义维护此数据的方式。角色用于强制执行授权

因此,您可以设置任何想要维护身份验证/授权数据的模型。例如,用户是组成员,权限附加到组

例如,使用JBoss,
LoginModule
的任务就是返回给定用户的角色。对于
DatabaseServerLoginModule
,您可以使用SQL语句将用户、他们的组以及组/角色分配连接在一起。结果总是一个简单的角色列表。对于WebSphere,他们使用“自定义用户注册表”而不是“登录模块”的名称

有一些选项可用于构建后端:

  • 由于用户通常是应用程序数据模型的一部分(引用完整性由约束强制实施),因此用户通常将其集成到应用程序的数据模型中

  • 如果不需要(甚至不需要),您可以集成任何您喜欢的东西。在这种情况下,请查看门户(例如Liferay)之类的解决方案,因为它提供了数据模型、维护应用程序、密码重置、电子邮件验证、锁定处理、单点登录(SSO)集成等。授权数据模型不是问题;而是需要一个用户界面来维护数据