最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決shiro 定時監(jiān)聽器不生效的問題 onExpiration不調用問題

 更新時間:2021年07月29日 11:44:58   作者:Mitnickl  
這篇文章主要介紹了解決shiro 定時監(jiān)聽器不生效的問題 onExpiration不調用問題。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

問題

redis 拋出異常:

redis.clients.jedis.ScanResult.getStringCursor()Ljava/lang/String;
Method threw 'java.lang.NoSuchMethodError' exception.

說明

spring-boot 版本

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

shiro-redis版本

 <dependency>
   <groupId>org.crazycake</groupId>
   <artifactId>shiro-redis</artifactId>
   <version>3.2.3</version>
</dependency>

jedis版本

image-20210721141755093

shiro設置定時檢測session失效

shiro配置session失效時間,沒有引用shiro-quartz ,采用默認的

ExecutorServiceSessionValidationScheduler

shiro 配置

  @Bean
    public SessionManager sessionManager(SimpleCookie simpleCookie, SessionDAO sessionDAO) {
        logger.debug("安全框架配置:開始sessionManager配置");
        SkySessionManager skySessionManager = new SkySessionManager();
        skySessionManager.setSessionDAO(sessionDAO);
        skySessionManager.setSessionIdCookie(simpleCookie);
        // 開啟cookie
        skySessionManager.setSessionIdCookieEnabled(true);
        // session 失效刪除session
        skySessionManager.setDeleteInvalidSessions(true);
        // 定期檢查 失效的 session
        skySessionManager.setSessionValidationInterval(10000);
        // 開啟 schedule
        skySessionManager.setSessionValidationSchedulerEnabled(true);
​
        skySessionManager.setSessionListeners(Collections.singletonList(new SkySessionListener()));
        logger.debug("安全框架配置:結束sessionManager配置");
        return skySessionManager;
    }

shiro schedule 創(chuàng)建邏輯

問題出現(xiàn)點

當創(chuàng)建完默認的scheduler 后會執(zhí)行一次 run方法。

繼續(xù)跟蹤代碼

發(fā)現(xiàn) 此處有異常,但是異常并未被捕獲,導致線程中斷。

網上百度此異常 說是,jedis版本不一致導致。

解決方案

查看shiro-redis pom文件jedis的版本號。

image-20210721142036883

發(fā)現(xiàn)jedis版本號為2.9.0

將jedis 2.9.0 集成進項目:

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>2.9.0</version>
</dependency>

至此問題解決。

 @Override
public void onExpiration(Session session)

onExpiration 方法不調用的問題, 此方法是通過上面的定時任務提醒來進行觸發(fā)的。

由于,redis 和ehcache 本身設置了過期時間,過期之后 session 變從 redis 后者ehcache 里面刪除,因此 onExpiration 過期之后此方法 永遠不會被調用到。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 詳解Java弱引用(WeakReference)的理解與使用

    詳解Java弱引用(WeakReference)的理解與使用

    這篇文章主要介紹了Java弱引用(WeakReference)的理解與使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Java?OpenCV圖像處理之背景切換

    Java?OpenCV圖像處理之背景切換

    這篇文章主要介紹了利用Java?OpenCV實現(xiàn)圖像背景的切換,文中的示例代碼講解詳細。對我們學習OpenCV有一定幫助,感興趣的同學可以了解一下
    2022-01-01
  • Java中Finally關鍵字

    Java中Finally關鍵字

    與其他語言的模型相比,finally 關鍵字是對 Java 異常處理模型的最佳補充。接下來通過本文給大家介紹Java中Finally關鍵字及finally關鍵字的使用相關知識,感興趣的朋友一起學習吧
    2016-05-05
  • SpringBoot整合SpringSecurity和JWT的示例

    SpringBoot整合SpringSecurity和JWT的示例

    這篇文章主要介紹了SpringBoot整合SpringSecurity和JWT的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • java實現(xiàn)二維碼生成的幾個方法(推薦)

    java實現(xiàn)二維碼生成的幾個方法(推薦)

    本篇文章主要介紹了java實現(xiàn)二維碼生成的幾個方法(推薦),具有一定的參考價值,有興趣的可以了解一下。
    2016-12-12
  • 淺談Redis在微服務架構中的幾種應用場景

    淺談Redis在微服務架構中的幾種應用場景

    本文介紹在SpringCloud中使用Redis作為Pub/Sub異步通信、緩存或主數(shù)據庫和配置服務器的三種場景應用。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 一篇文章帶你使用SpringBoot基于WebSocket的在線群聊實現(xiàn)

    一篇文章帶你使用SpringBoot基于WebSocket的在線群聊實現(xiàn)

    這篇文章主要介紹了一篇文章帶你使用SpringBoot基于WebSocket的在線群聊實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • Spring整合Mybatis詳細步驟

    Spring整合Mybatis詳細步驟

    今天帶大家來學習Spring怎么整合Mybatis,文中有非常詳細的代碼示例及介紹,對正在學習java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Windows安裝兩個或多個JDK并實現(xiàn)自由切換的方法

    Windows安裝兩個或多個JDK并實現(xiàn)自由切換的方法

    最近新接手一個項目,啟動的時候,發(fā)現(xiàn)有些jar和現(xiàn)在正在使用的JDK版本不一致,一直啟動有問題,想著就多裝一個JDK,由于為了保證java的運行環(huán)境和編譯環(huán)境保持一致,就需要我們設置jdk的環(huán)境變量,所以本文給大家介紹了Windows安裝兩個或多個JDK并實現(xiàn)自由切換的方法
    2025-03-03
  • SpringBoot之Java配置的實現(xiàn)

    SpringBoot之Java配置的實現(xiàn)

    這篇文章主要介紹了SpringBoot之Java配置的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01

最新評論

惠东县| 茶陵县| 贺兰县| 西乌珠穆沁旗| 台南市| 贵溪市| 南岸区| 鲜城| 察隅县| 桂平市| 新巴尔虎右旗| 张家川| 洛川县| 沈阳市| 淄博市| 聊城市| 汕尾市| 清水河县| 凤山县| 东明县| 霍州市| 前郭尔| 诸暨市| 原平市| 临夏县| 县级市| 广饶县| 乌兰浩特市| 商丘市| 徐闻县| 宁远县| 竹溪县| 颍上县| 宁安市| 宝山区| 三亚市| 治多县| 常山县| 宜川县| 垦利县| 宝鸡市|