Java EAR中web和ejb模块之间的安全传播

Java EAR中web和ejb模块之间的安全传播,java,security,jakarta-ee,ejb,jaas,Java,Security,Jakarta Ee,Ejb,Jaas,我的应用程序有一个表单安全域,安全决策是程序化和细粒度的。这对servlet很有效。但我也调用EJB方法,这些方法根据请求模型的用户是否处于特定角色来返回模型,就像HttpServletRequest::isUserInRole(“someRole”)用于在更精细的级别上决定是否返回某些资源 这似乎不起作用-未传播安全性: @Resource SessionContext ctx; //in a session bean ctx的getUserPrincipal().getName()始终返回

我的应用程序有一个表单安全域,安全决策是程序化和细粒度的。这对servlet很有效。但我也调用EJB方法,这些方法根据请求模型的用户是否处于特定角色来返回模型,就像HttpServletRequest::isUserInRole(“someRole”)用于在更精细的级别上决定是否返回某些资源

这似乎不起作用-未传播安全性:

@Resource SessionContext ctx; //in a session bean
ctx的getUserPrincipal().getName()始终返回“匿名”

互联网上的搜索没有发现任何积极的东西。我现在正在考虑重构EJB的方法以接受HttpServletRequest引用,但这将是一个混乱和黑客行为。。。这似乎不是一个好的做法

有人有什么建议吗