sessionContext.getCallerPrincipal()。getName()始终返回“anonymous”

时间:2017-09-28 03:05:14

标签: java jboss ejb-3.0 principal sessioncontext

我正在开发一个包含EJB组件的Web项目,并部署在JBoss EAP 7.0.7中。某些EJB是从独立客户端应用程序调用的。

问题是虽然身份验证似乎工作正常,但是主体不会传播到EJB层,所以当我调用sessionContext.getCallerPrincipal()。getName()时,它只返回“匿名”。

似乎我的配置工作正常。我在standalone.xml和jboss-web.xml中设置了一个安全域,然后我注释了我的EJB以使用配置的安全域。

当我从Web应用程序中调用EJB时​​,它运行得非常好。主体被传播并设置为登录用户(我使用了HttpServletRequest.login api)。

那么我如何将主体传播到EJB层,就像使用HttpServletRequest.login传播它一样?有没有类似于我提到的api,我可以在一个独立的应用程序中实现?我一直在寻找一段时间,但到目前为止我没有任何作用。希望可以有人帮帮我。谢谢!

0 个答案:

没有答案