在我的Java EE应用程序中,我遇到了会话问题。不同的用户可以登录应用程序,并且指定的用户可以查看他被授权的数据。他不应该能够看到其他用户的数据。为了区分用户,我们使用Client_ID
。一旦用户登录,我们就从数据库中获取这个Client_ID
并将其设置在会话中,如下所示:
session.setAttribute("Client_ID",user.getClient_ID())
我们在整个应用程序中访问这个会话值,并获取与该
Client_ID
相关的数据。当用户在单个浏览器上工作时,这很好运行,但问题在于:假设有一个SuperAdmin,他需要查看他下面的所有客户端。SuperAdmin以
client_1
的身份登录,然后再次以client_2
的身份登录。SuperAdmin两次都使用同一个浏览器登录。当我刷新client_1
浏览器时,我看到的是client_2
的详细信息,这不应该发生。我认为我们的应用程序在同一个浏览器中使用相同的会话进行两个不同的登录。这个问题的解决方案是什么?当我刷新页面时,我应该看到特定客户端的正确数据。