java - 如何将主体传递给后端 EJB
问题描述
目前我有两个应用程序,一个后端和一个前端 EAR 应用程序,我将它们部署到域中的两个 Wildfly 服务器——一个后端和一个前端服务器。两个应用程序中都有 EJB,对于某些任务,前端应用程序通过远程 JNDI 查找调用后端应用程序。
目标是只允许对特定角色进行特定操作,因此我@RolesAllowed
在这两个应用程序中都使用。这在前端应用程序中运行良好,用户使用基本身份验证进行身份验证,并且相应地设置了请求的主体。但是,在后端,我在查找远程 bean 后丢失了主体:如果我使用Context
带有用户名和密码的手动创建 a,我显然会将该用户作为主体,如果我使用@EJB(lookup = ...)
,那么我将$local
作为主体。
所以这是我需要帮助的地方,我想保留原来的 principal。我最初的想法是Context
使用当前的主体创建,但如果没有密码,我似乎无法做到这一点。
解决方案
推荐阅读
- python - 从数组中删除重复项并将值相加 Python
- javascript - 如何使用其他数组的内容制作新数组或数组?
- amazon-web-services - 如何使用邮递员获取 Amazon SNS 电子邮件通知的响应?
- php - Laravel Blade:我的刀片文件中未呈现 HTML 标签
- c++ - 'null' 和 'NULL' 是一样的吗?
- google-cloud-platform - 在 bigquery UDF 中使用 SQL
- symfony4 - 如何在 Symfony4 上使用带小数的 ICU 选择?
- git - 如何将私人组织的 Git 存储库与公共 GitHub 同步?
- mysql - 如何按值获取分组列计数
- heap-memory - 带有python的Nifi ExecuteScript:OOM异常