我开发了一个Web应用程序。我把会话ID放在哈希表中。我想在ejb中使用这个哈希表。意味着我想在ejb中使用此登录会话。
有可能吗?我怎么能这样做?
答案 0 :(得分:0)
这不是不可能,但你不能这样做。从HttpSession
获取所需的一切,并将其作为方法参数发送给EJB。例如:
public void doGet(HttpServletRequest request, HttpServletResponse response) {
String foo = (String) request.getSession().getAttribute("foo");
ejbService.doSomething(foo);
}
所以 - 通过应用程序的链层将所需的值作为参数传递给方法。
答案 1 :(得分:0)
安全凭证自动从servlet传递到EJB。如果您的用户已经对Web容器进行了身份验证,那么您无需再做任何工作。
在会话bean中,按照link text
所述获取EjbContext @Resource
private SessionContext sctx;
然后调用
等方法 sctx.getCallerPrincipal();