小编典典

Web应用程序中的共享会话

jsp

我使用的开发Web应用程序JSPServlets(:集装箱Tomcat7,数据库:Oracle10

我已经开发了一些Web应用程序一样ProfileReportsLeads。然后,我开发了一个Login应用程序。在这种应用中,我存储
USERIDSession一些更多的会话属性。

用户登录后,将显示一个菜单,其中包含指向其他应用程序的链接,例如与Profile应用程序的链接。

因此,当Session用户登录后访问时:

  • 如果我尝试使用同一应用程序(登录)访问会话,那么我将获得具有所有必需属性的会话
  • 但是当我尝试从其他应用程序访问会话时, Profiles我得到的会话为null

代码段以检查会话 (Login Web应用程序中的Servlet过滤器)

HttpSession session = request.getSession(false);
if(session==null)
{
    System.out.println("Session does not exist... Redirected to LOGIN Page.");
    response.sendRedirect("/ApplicationName/Login.jsp");
}

我正在Profile应用程序中访问会话,以检查用户是否已登录。

然后我进行了搜索,发现Session出于安全原因无法从其他应用程序访问它(我也发现可以通过设置来完成此操作crossContext="true"

然后,我发现了其他选择,例如制作EAR所有应用程序然后进行部署,但是不幸的EAR是,它不支持Tomcat7

我是Web环境的新手,所以如果之前有人从事过此工作,请告诉我可以选择什么?

提前致谢

更新1

现在,我决定使用EAR,其中将打包所有WAR文件,然后尝试在它们之间共享会话。由于Tomcat不支持,EAR所以我已经安装了Oracle Glassfish,然后创建Enterprise Application Project了包含两个Application 1. Login和的文件,2. Profiles然后创建了EAR文件,并将其部署在上Glassfish。所以我想在这两个应用程序(在Glassfish上)之间共享会话,所以如果有人对此有任何想法,请告诉我。(链接到任何教程也将不胜感激)


阅读 310

收藏
2020-06-08

共1个答案

小编典典

我在商店中看到的方法是将登录凭据填充到加密的cookie中,并在需要用户数据的应用程序之前安装代理(java过滤器,web服务器mods等)来解密cookie并传递沿数据传输到下游应用程序。如果要在应用程序之间共享登录信息,请不要将其存储在HTTP会话中。

2020-06-08