每次訪問都生成不一樣sessionId


最近用nginx部署服務器的時候,遇到了一個問題,就是每次訪問瀏覽器,sessionid都不一樣。我們做的項目使用了shiro框架。

AbstractValidatingSessionManager抽象類中有執行服務器時間驗證,
protected void validate(Session session, SessionKey key) throws InvalidSessionException {
try {
doValidate(session);
} catch (ExpiredSessionException ese) {
onExpiration(session, ese, key);
throw ese;
} catch (InvalidSessionException ise) {
onInvalidation(session, ise, key);
throw ise;
}
}

由於部署了負載均衡,其中一台服務器的時間不太對,導致 doValidate(session);出現異常,執行了onExpiration(session, ese, key);,該方法執行了deleteMe,導致會生成新的sessionId。
最后通過linux設置時間同步,解決了這個問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM