2014-09-26 181 views
0

我有一個運行在Tomcat上的系統,前端有HTML/JSP,後端有java/Spring/Struts。使用sessionstorage進行JSP/Tomcat安全登錄

我做了一個登錄功能,用戶輸入他的用戶名和密碼。 在後端,我將用戶名和密碼驗證到DB中存儲的用戶。 如果匹配的話,我的用戶名存儲在HttpSession中:

  session.setAttribute("username", name); 

然後,在後臺每個集體訴訟,我添加以下代碼:

HttpSession session = request.getSession(); 
    if(session.getAttribute("username") == null) { 
     return mapping.findForward("invalidUser"); 
    } 

的invalidUSer映射的用戶重定向回登錄頁面。

  1. 這有多安全?
  2. 有沒有辦法檢查httpsession而不添加我的驗證代碼到每個類?
  3. 你們是否有提示(或例子/教程)如何做到這一點不同?系統已經創建並正在生產中,所以我不想做太多的結構變化。

回答

0

由於您已經在您的項目中使用了Spring,因此您可能需要查看Spring Security來替換您定製的安全機制。您可以對其進行配置,以保護應用程序中的某些資源,對定製數據庫後端,LDAP目錄等進行身份驗證。這將允許您刪除所有會話的手動檢查以查看用戶是否已通過身份驗證,並且會重定向匿名用戶當他們試圖訪問受保護的資源時,它們會到指定的登錄頁面HTTP命名空間來定義的登錄:

隨着web.xml中的彈簧安全過濾器定義,該配置可以在一個單一的彈簧security.xml文件中指定使用安全(導入到根應用程序配置)頁面,受保護資源,註銷頁面,安全標題等。您可以使用org.springframework.security.core.userdetails.jdbc。 JdbcDaoImpl實例被配置爲一個bean來定義可由認證提供者引用的用戶服務 - 請參閱文檔,其非常靈活。

希望這很有用。

+0

謝謝您的回覆。您發佈的鏈接不起作用,您是否有其他鏈接? – TorK 2014-09-26 11:28:38

+0

@TorK - 這很奇怪 - 適合我。這裏是URL:http://docs.spring.io/spring-security/site/docs/3.2.5.RELEASE/reference/htmlsingle/ – 2014-09-26 11:54:03

+0

@TorK - 只是爲了補充,當前版本v3.2.5的鏈接。主要的Spring docs主頁(http://spring.io/docs)鏈接了每個Spring模塊的最新版本(參考文檔和API) – 2014-09-26 11:57:34