0

我想问是否可以从 EJB 拦截器更改 Java EE JAAS 上下文(分配的用户角色)?

我有一些 EJB 会话 bean,它们使用方法“isUserInRole()”来测试授权。另一方面,我的应用程序正在管理具有一些特殊信息的用户配置文件,这些信息无法映射到通过应用程序 Java EE 领域管理的 JAAS 角色/组,因为它们是在运行时创建的。

我的想法是实现类似 EJB 拦截器的东西,检查存储在我的应用程序的用户配置文件中的信息,并向用户凭据/主题添加一些新的自定义角色。

所以结果将是一个新的动态角色定义分配给我的会话 bean 可以询问的凭据。但这些角色不会在 ejb (@RolesAllowd) 或 ejb-jar.xml 或 sun-ejb-jar.xml 描述符中硬编码。

感谢您对这个问题的任何帮助。

4

1 回答 1

0

更改已建立的安全上下文很困难,但如果最初设置安全上下文也适用于您的情况,则必须查看自定义登录模块。

在 Java EE 中,这可以通过JASPI基于 JAAS 的 API 来完成。

几乎每个应用程序服务器也都有一个专有的 API 来执行此操作,其中大多数也是基于 JAAS 构建的。

于 2012-08-21T17:31:00.993 回答