2011-12-09 79 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,))。然後,每個人都會有一個獨特的個人資料