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

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

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

問題

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設(shè)置定時檢測session失效

shiro配置session失效時間,沒有引用shiro-quartz ,采用默認(rèn)的

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("安全框架配置:結(jié)束sessionManager配置");
        return skySessionManager;
    }

shiro schedule 創(chuàng)建邏輯

問題出現(xiàn)點(diǎn)

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

繼續(xù)跟蹤代碼

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

網(wǎng)上百度此異常 說是,jedis版本不一致導(dǎo)致。

解決方案

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

image-20210721142036883

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

將jedis 2.9.0 集成進(jìn)項(xiàng)目:

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

至此問題解決。

 @Override
public void onExpiration(Session session)

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

由于,redis 和ehcache 本身設(shè)置了過期時間,過期之后 session 變從 redis 后者ehcache 里面刪除,因此 onExpiration 過期之后此方法 永遠(yuǎn)不會被調(diào)用到。

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

    Java中Finally關(guān)鍵字

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

    SpringBoot整合SpringSecurity和JWT的示例

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

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

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

    淺談Redis在微服務(wù)架構(gòu)中的幾種應(yīng)用場景

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

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

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

    Spring整合Mybatis詳細(xì)步驟

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

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

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

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

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

最新評論

乐昌市| 时尚| 慈溪市| 喀什市| 康马县| 城口县| 固始县| 平罗县| 沂南县| 乌鲁木齐市| 东台市| 沈丘县| 丹凤县| 苍梧县| 陇川县| 永宁县| 宜川县| 焉耆| 西昌市| 客服| 临漳县| 离岛区| 昭觉县| 泰安市| 北海市| 清流县| 宁安市| 哈密市| 贵定县| 新邵县| 长海县| 富民县| 奉新县| 临江市| 安宁市| 海门市| 扎囊县| 鄂托克旗| 慈溪市| 麻栗坡县| 枝江市|