2011-03-28 85 views
1

我正在創建一個將包含多個頁面的應用程序,我希望用戶可以重定向到登錄頁面,以防他未經身份驗證並嘗試訪問某些中間頁面...登錄在每個頁面進行身份驗證jsp/servlet

我正在開發這個jsp/servlet。但支柱也可以考慮。

在此先感謝

+0

你需要的HttpSession和過濾器進行登錄認證。 – 2011-03-28 04:30:10

+0

[JSP中的通用登錄授權]的可能的重複(http://stackoverflow.com/questions/5387345/universal-login-authorization-in-jsp) – 2011-03-29 05:54:11

回答

0

當你登錄,設置會話屬性

request.setAttribute("user","<username>"); 

並在每一頁中,首先檢查會話屬性是否爲其設置,

String user=request.getAttribute("user"); 
//check in database for user 
if(<user not exist>){ 
response.sendRedirect("login.jsp"); 
} 
+1

這是我以前做的事情,不想再次這樣做..它必須在每個頁面上執行......並且不在應用程序級別完成 – Varun 2011-03-29 03:24:26

0

您可以使用基於容器的安全性或基於表單的安全性來驗證用戶身份。使用基於容器的安全性時,Web瀏覽器將爲您跟蹤登錄,並在需要時將憑據「重放」到服務器。如果瀏覽器還沒有被認證,它會自動顯示一個簡單的登錄表單。如果登錄通過,用戶的原始請求將繼續。如果用戶嘗試將POST從表單發送到受保護區域中的操作URI,這也可以正常工作。瀏覽器通過身份驗證後,POST正常進行。對於管理自己登錄的應用程序,可能更容易堅持每一個頁面都首先爲經過身份驗證的用戶測試,如果不是,則重定向到登錄頁面。 Struts示例應用程序執行此操作 - 部分是通過使用在每個頁面頂部執行此檢查的特定於應用程序的自定義標記(app:checkLogon)。該標籤是特定於應用程序的,因爲構成「登錄用戶」的概念也是特定於應用程序的。

而且下面的鏈接將幫助您更

http://www.mooreds.com/jaas.html

您可能要延長RequestProcessor.It是最好的practices.It之一是驚人的,你可以做什麼,在它的method.Look到它的processPreprocess方法。

欲瞭解更多信息,請參考...... http://www.javaworld.com/javaworld/jw-09-2004/jw-0913-struts-p2.html