如何以编程方式利用 javax.security (JAAS)?

How to harness javax.security (JAAS) programmatically?

我知道如何从 javaee web 应用程序上登录并保护 URI 资源免受未经身份验证的用户的侵害。有效。

现在,我考虑使用所有已经存在的 Java EE 安全结构,只是因为我想避免重复代码并使情况变得更糟。我想避免创建 @Entity 个已经可用的 bean。因此,我想保护我的 EJB、Backing Bean、CDI bean 和 URI 资源。都是同一个概念。即我需要:

最多,我想扩展现有的实现并使用更具体的实现。例如。 User --> 具有 firstnamelastname 等的用户

Java EE 安全性中是否已经有接口 User 甚至实现?

此外,如果用户被识别为基于表单的登录,我是否也可以在 EJB 中检查用户的权限(例如 @Stateless)?例如。 @RolesAllowed("admin")。换句话说:登录状态是否也适用于 EJB 上下文,而不仅仅是 Web 上下文?(我的意思是,它应该是同一个容器,对吧?)

有classjava.security.Principal(例如javax.servlet.http.HttpServletRequest#getUserPrincipal)。它有 getName 方法。如果你想用新字段扩展 Principal 对象,你应该为你的应用程序服务器创建自定义登录模块。