2011-12-09 39 views
0

已解决。这个问题可以通过管理员删除将登录系统添加到简单的JSP站点

我有一个使用Java EE(JSP,Java,Tomcat服务器)编写的非常简单的站点。我想实现一个简单的登录系统。我以为我得到了注册和登录工作;然而,我这样做的方式存在一个巨大的问题。

比方说,爱丽丝登录。她能够查看她的个人资料与她的信息,目前一切看起来正常的爱丽丝。然后Eve来到并想要登录。她确实并被带到了她的档案中,夏娃的一切看起来都很正常。 然后Alice重新加载她的个人资料,发现该网站现在已将她登录为Eve!

所以要重申:在一个人登录后,任何人都可以访问该网站并登录该帐户。最近登录的人是活动账户。

如何跟踪这样的会话信息,以便可以同时使用该站点登录多个不同的帐户?

谢谢!

编辑: 这最终是一个非常简单的解决。我只需要使用setAttribute("EMAIL", userId);而不是笨的办法,我做到了这是只使用一个全局字符串变量

+0

相关:http://stackoverflow.com/questions/3106452/how-do-servlets-work-instantiation-session-variables-and-multithreading/3106909#3106909 – BalusC

+0

@Corey - 如果你已经找出答案您自己的问题,请将其作为实际答案张贴,然后接受。这样,其他处于类似情况的人也许可以从你的努力中学习。谢谢! – cdeszaq

回答

0

,而不是试图推出您自己的安全性,请使用现有框架,如Spring Security。开箱即用,它为您提供基本的登录功能,并使用基于角色的身份验证方案处理安全页面。

0

读取您的问题,我认为您将上次记录的用户凭据存储在您的一个servlet的实例变量中。这使得最后一个人登录到覆盖所有人的凭证......

如果你想要一个简单的身份验证,可以使用Java EE的提供的系统: http://docs.oracle.com/javaee/5/tutorial/doc/bncbx.html

一旦用户登录,把自己的证件在他的Http会话中(request.getSession()。put(username,))。然后,每个人都会有一个独特的个人资料