首页 > 解决方案 > 如何将主体传递给后端 EJB

问题描述

目前我有两个应用程序,一个后端和一个前端 EAR 应用程序,我将它们部署到域中的两个 Wildfly 服务器——一个后端和一个前端服务器。两个应用程序中都有 EJB,对于某些任务,前端应用程序通过远程 JNDI 查找调用后端应用程序。

目标是只允许对特定角色进行特定操作,因此我@RolesAllowed在这两个应用程序中都使用。这在前端应用程序中运行良好,用户使用基本身份验证进行身份验证,并且相应地设置了请求的主体。但是,在后端,我在查找远程 bean 后丢失了主体:如果我使用Context带有用户名和密码的手动创建 a,我显然会将该用户作为主体,如果我使用@EJB(lookup = ...),那么我将$local作为主体。

所以这是我需要帮助的地方,我想保留原来的 principal。我最初的想法是Context使用当前的主体创建,但如果没有密码,我似乎无法做到这一点。

标签: javaejbwildflyjndi

解决方案


推荐阅读