IDEA JeeSite框架httpSession.invalidate()無效問題解決方案
想要實現(xiàn)一個功能:同一個用戶在兩個不同的瀏覽器中登錄,后面的踢掉之前的登錄。
本來的思路是在httpSession監(jiān)聽器中進行判斷。但是在使用httpSession.invalidate();銷毀Session的時候,這一句話會拋出奇怪的異常,怎么都解決不了。
這個時候可以使用一個比較笨的但是有效的一個方法來替代:
httpSession.setMaxInactiveInterval(1);
在代碼中設置過期時間為1秒鐘
當然這個方法只是耍小聰明,后來發(fā)現(xiàn),我遇到的問題,實際上是JeeSite 框架集成了Shiro 登陸框架,而這個框架,已經(jīng)默認實現(xiàn)了之前描述的功能,在它自定義的登錄登出攔截器中。
<!-- 定義Shiro安全管理配置 -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="systemAuthorizingRealm" />
<property name="sessionManager" ref="sessionManager" />
<property name="cacheManager" ref="shiroCacheManager" />
</bean>
<!-- 自定義會話管理配置 -->
<bean id="sessionManager" class="com.thinkgem.jeesite.common.security.shiro.session.SessionManager">
<property name="sessionDAO" ref="sessionDAO"/>
<!-- 會話超時時間,單位:毫秒 -->
<property name="globalSessionTimeout" value="${session.sessionTimeout}"/>
<!-- 定時清理失效會話, 清理用戶直接關(guān)閉瀏覽器造成的孤立會話 -->
<property name="sessionValidationInterval" value="${session.sessionTimeoutClean}"/>
<property name="sessionValidationSchedulerEnabled" value="true"/>
<property name="sessionIdCookie" ref="sessionIdCookie"/>
<property name="sessionIdCookieEnabled" value="true"/>
</bean>
只需要修改屬性文件jeesite.properties 中的屬性即可
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringSecurity如何實現(xiàn)配置單個HttpSecurity
這篇文章主要介紹了SpringSecurity如何實現(xiàn)配置單個HttpSecurity,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08
java.net.URL超時時間默認無限制問題小結(jié)
文章介紹了如何在Java中使用URLConnection或HttpURLConnection設置連接和讀取超時,以處理網(wǎng)絡問題導致的長時間等待,通過httpstat.us網(wǎng)站可以測試不同延遲的請求,并演示了如何通過調(diào)整超時時間處理超時異常,感興趣的朋友一起看看吧2025-02-02
Java以struts2為例介紹如何實現(xiàn)圖片上傳
這篇文章主要介紹了Java struts2中如何實現(xiàn)圖片上傳的相關(guān)資料,需要的朋友可以參考下2015-11-11
使用EasyPoi完成復雜一對多excel表格導出功能全過程
這篇文章主要介紹了使用EasyPoi完成復雜一對多excel表格導出功能全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
Java面向?qū)ο缶幊讨衒inal關(guān)鍵字的使用方法詳解
這篇文章主要介紹了Java面向?qū)ο缶幊讨衒inal關(guān)鍵字的使用方法詳解,包括對內(nèi)部匿名類無法訪問外面的非 final 的變量問題的解讀,需要的朋友可以參考下2016-06-06
Java數(shù)據(jù)結(jié)構(gòu)與算法之插值查找解析
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)與算法之插值查找解析,插值查找算法類似于二分查找,不同的就是插值查找每次從自適應mid處開始查找,需要的朋友可以參考下2023-12-12
@CacheEvict 清除多個key的實現(xiàn)方式
這篇文章主要介紹了@CacheEvict 清除多個key的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02

