2013-08-05 44 views
0

我正在使用基於表單的身份驗證來保護我的網頁,或者至少我會很快。登錄後重定向到servlet?

我只是最近才瞭解到這個的細節,之前有我自己的自制系統(這是一個內部系統,只有5人登錄,但我仍然想這樣做'Java Standard'的方式if可能)。

我想在會話中存儲幾個對象,只要有人登錄到我的應用程序中,就像我現在在自己的本地實現中一樣。但是,通過這個容器管理的安全性,我正在努力掌握如何做到這一點,或者至少是被認爲是最佳實踐的方式。

當我嘗試導航到一個頁面並被重定向到登錄頁面時,我正確地登錄,然後我邏輯上被帶到了我的初始目的地,這是正確的。對於我來說,最好的方法是在會話中添加一個UserBean?我應該使用過濾器嗎?或者每次登錄嘗試後都可以重定向到一個servlet?

任何指導非常感謝。謝謝。

回答

1

對於這種情況,servlet過濾器幾乎肯定是正確的解決方案。爲保證過濾器的內容只有每次登錄運行一次,我建議將其設置是這樣的:

if(session.getAttribute(firstLoginFlag) == null){ 
    //load UserBean 
    //do whatever else 
    session.setAttribute(firstLoginFlag, true); 
} 
chain.doFilter(request, response); 

這通常比重定向到一個servlet更好,因爲它使過濾器獨立於任何其他頁面的或應用程序中的邏輯,在您加載UserBean和其他任何東西完成後,您不必將任何邏輯放入其中就可以將用戶推送到其他地方。

+0

非常感謝。 – MasNotsram