2016-02-12 50 views
0

我正在使用spring安全性的java應用程序。改變JSESSIONID的真正效果是什麼?

我想避免會話固定,但在文檔中發現的會話固定的解決方案似乎沒有按預期工作... here

所以,我這樣做對我的登錄

final HttpSession session = request.getSession(false); 
     if (session != null && !session.isNew()) { 
      session.invalidate(); 
     } 

工程偉大,每次我改變JSESSIONID我打電話登錄頁面...

但是,一旦我登錄,我可以再次調用登錄頁面,獲得另一個JSESSIONID,並仍然登錄,我只需點擊返回按鈕並返回到日誌ged用戶區。

它改變了JSESSIONID,我的問題是,它不應該有更大的影響?像使我的會話無效或將我註銷?

當我調用註銷表單時,它會將用戶註銷並按預期工作,我只是想知道更改JSESSIONID是否有真正的效果或無關緊要。

任何想法?我使用的安全

3.2

+0

Spring安全性[自動執行](https://docs.spring.io/spring-security/site/docs/4.0.x/reference/html/ns-config.html#ns-session-fixation)。你想在這裏做什麼?對不起,要直言不諱,但你似乎沒有必要的知識來實現​​安全性,所以依靠經過驗證的代碼將是謹慎的。 –

+0

你好,在我的應用程序不是自動完成,我試圖實現它,但可能沒有做好,任何想法如何? – jpganz18

回答

0

春天的session映射到JSESSIONID。所以如果客戶擁有會話狀態bean,那麼在更改JSESSIONID之後它們會丟失。 即使文檔告訴

春季安全保護機體免受這種通過創建時

用戶登錄您可以通過添加此

<security:session-management session-authentication-strategy-ref="fixation" /> 
明確設置會話固定配置的新 會話自動

和定義fixation bean與SessionFixationProtectionStrategy