2011-04-06 64 views
0

我使用Spring框架3.0.5和Spring安全3.0.5開發一個Web應用程序,用戶可以登錄和註銷,使用記住我服務,如果他們想要至。記得我與春季安全,各種問題

由於我沒有太多的經驗,我不知道它是否正常工作。我使用PersistentTokenApproach(使用我自己的實現,因爲我使用Hibernate)。我可以看到cookie在登錄時創建並在註銷時刪除。 如果我有一個有效的Remember-Me-Cookie並關閉瀏覽器,當我再次打開瀏覽器時,Im再次成功登錄。到現在爲止還挺好。

現在,我只想知道我注意到的那些東西是否按照預期的方式工作,或者如果我確實犯了錯誤。

1)當沒有用戶登錄記得,我和瀏覽器的標籤被關閉(不是瀏覽器本身),在重新打開一個新的瀏覽器選項卡,他通過身份認證(他使用相同的JSESSIONID)。關閉瀏覽器並重新打開時,他不再被驗證。關於網絡應用程序的安全性,這是一種推薦的(「正常」)行爲嗎?

2)當記得-我使用,並且用戶被成功認證(通過登錄或以後通過cookie中),則對該cookie沒有更多的檢查。這意味着,如果用戶同時在線,我會從數據庫中刪除cookie,用戶仍然可以登錄,甚至可以查看受保護的頁面。我想這是因爲他之前進行了身份驗證,並繼續使用相同的SESSIONID。當我關閉瀏覽器並重新打開它時,他不再被驗證。

3)當我沒有擁有cookie並打開主頁面時,對於我發送的每個請求(每張圖片,頁面上的每個文件),服務器正在檢查rememberme-cookie。那是對的嗎?

對不起,新手問題,但我只是想確保一切正常,因爲它應該。 :-) 提前致謝!

回答

1

1)就瀏覽器中的標籤頁而言,我確定他們都共享相同的瀏覽器會話。如果您嘗試使用Gmail或其他基於Web的服務,則在關閉/打開選項卡時會看到相同的行爲。使用舊版本的IE(也許是版本6),單獨的實例有自己的會話,除非它們是從現有的IE實例中產生的。

2)這聽起來正確。在經過身份驗證之後,它並不是每個請求上的數據庫都很理想。

3)這是正確的,因爲默認情況下,彈簧安全過濾器將過濾/ * - 並嘗試查找身份驗證信息。您可以將排除項添加到您不需要保護的資源的安全配置 - 即

<http> <intercept-url pattern="/images/**" filters="none"/> 
+0

謝謝您的回答! :-) – nano7 2011-05-09 08:37:28