我正在开发一个遗留应用程序,
当用户登录请求时,过滤器将在验证后重定向到主页。之后,只要用户点击任何链接,就会验证用户是否是使用DWR的管理员用户。
问题是,当我们从
获取会话时,我们会收到不同的会话httpServletrequest.getSession(true);
和
WebContextFactory.get().getHttpServletRequest().getSession();
因此,当我们尝试从会话中获取用户详细信息时,我们在会话中得到的是从DWR获得的内容。
如何使用DWR获取在httpServletrequest中创建的同一会话。
答案 0 :(得分:0)
根据this page:
当您在DWR线程中时使用WebContext。它使用ThreadLocal变量将您连接到正在运行的容器。
当您调用WebContextFactory.get()
时,您是否处于DWR线程中?
或者,您可以在您的远程方法对象的参数列表中包含servlet对象。
DWR不会将其包含在生成的存根中,并且在调用该方法时,它将自动填充它。
我是这样做的并且有效。我得到了与标准请求相同的会话。
public class Remote {
public void method(int param, HttpSession httpSession) { ... }
}