Authentication 如何使简单的JAAS登录模块工作(EJB、Tomcat、WebLogic)?

Authentication 如何使简单的JAAS登录模块工作(EJB、Tomcat、WebLogic)?,authentication,jakarta-ee,ejb,roles,jaas,Authentication,Jakarta Ee,Ejb,Roles,Jaas,我想创建一个简单的登录模块,对用户进行身份验证,这样他们就可以通过一个使用weblogic客户端的servlet,访问带有@RolesAllowed注释的EJB方法。正如您可能注意到的,我有两个独立的层—一个是webapp(Tomcat),另一个是包含业务逻辑(WebLogic) 一般来说,我遵循(相应地设置事情) 根据对的回答,应该将主体宣传到业务层(甚至将层放在单独的机器上?) 然而,我得到的是一个带有以下标题的错误页面:HTTPStatus 500-[EJB:010160]安全冲突:用户没

我想创建一个简单的登录模块,对用户进行身份验证,这样他们就可以通过一个使用weblogic客户端的servlet,访问带有
@RolesAllowed
注释的EJB方法。正如您可能注意到的,我有两个独立的层—一个是webapp(Tomcat),另一个是包含业务逻辑(WebLogic)

一般来说,我遵循(相应地设置事情)

根据对的回答,应该将主体宣传到业务层(甚至将层放在单独的机器上?)

然而,我得到的是一个带有以下标题的错误页面:
HTTPStatus 500-[EJB:010160]安全冲突:用户没有足够的权限访问EJB类型=

此外,我还在WebLogic控制台中创建了相应的角色

来自servlet的
GET
方法的一些测试(不调用Bean的注释方法):

request
是从参数
@Context-HttpServletRequest
获得的)

还有什么事情要做才能让它工作吗?或者这足够了,但可能在某个地方有错误

我还要指出,我在创建JavaEE应用程序方面是非常新的


帮助

servlet容器和EJB容器之间的安全信息集成是特定于供应商的。您提到的问题涉及来自同一供应商的容器之间的远程调用

在您的案例中,有两个不同的供应商—ApacheTomcat和Oracle WebLogic。因此,你将有更多的工作要做


您没有说明正在使用哪个版本的WebLogic,但是本文描述了为了正确地将安全上下文从Tomcat传播到WebLogic 11g而需要执行的其他步骤。您可能会找到其他WebLogic版本的类似信息。

servlet容器和EJB容器之间的安全信息集成是特定于供应商的。您提到的问题涉及来自同一供应商的容器之间的远程调用

在您的案例中,有两个不同的供应商—ApacheTomcat和Oracle WebLogic。因此,你将有更多的工作要做

您没有说明正在使用哪个版本的WebLogic,但是本文描述了为了正确地将安全上下文从Tomcat传播到WebLogic 11g而需要执行的其他步骤。您可能会找到其他WebLogic版本的类似信息

request.getUserPrincipal().getName(): ADMIN
request.getParameter("role"): null
request.isUserInRole("admins"): true