在springboot工程中,使用shiro作为权限框架,并采用redis来管理session时,如何自定义session过期时间?

上面与会话或缓存相关的组件有:

  • Session Manager:会话管理器
  • Session DAO:会话 DAO,将session保存到数据库、缓存等
  • Cache Manager:缓存管理器,权限认证的缓存、用户及权限信息的缓存等
    若只是做session共享,只需添加SessionDAO即可,不过为了防止出现缓存不一致性的问题,也将数据一起共享,则自定义session方法如下:
  1. 设置SessionManager:sessionManager.setGlobalSessionTimeout(24 * 60 * 1000);//单位为毫秒
  2. 设置RedisSessionDAO:redisSessionDAO.setExpire(24 * 60);//单位为秒
  3. 设置RedisCacheManager:redisCacheManager.setExpire(24 * 60);//单位为秒

第一个是session会话时间,默认为1800000L,即30分钟;

第二个是redis存储的session有效时间,默认为-2,即与session过期时间相同;

第三个是redis存储的cache有效时间,默认为1800,即30分钟;

其他地方的session配置都不用管,主要是前两个决定session过期时间。

如何在登录时设置过期时间呢?
若是设置永不过期,在登陆最开始加上
SecurityUtils.getSubject().getSession().setTimeout(-1000L);其中时间单位毫秒;
若设置指定过期时间,如下
SecurityUtils.getSubject().getSession().setTimeout(1800 * 1000);
其实质是设置session的过期时间,Session接口的默认实现SimpleSession设置的默认时间为1800000L毫秒。
注意:单独在登录时设置过期时间或单独在SessionManager中设置过期时间都是生效的;若在登录时设置了过期时间,在SessionManager中也设置了过期时间时,无论是前者设置的过期时间大于后者,还是前者设置的过期时间小于后者,均是前者时间生效,前者设置的过期时间会覆盖后者的过期时间。

springboot+shiro中自定义session过期时间相关推荐

  1. C#发布网站在web.config和IIS中设置Session过期时间

    C#发布网站在web.config和IIS中设置Session过期时间 web.config <system.web> <sessionState mode="InProc ...

  2. php修改sessiob时间_php中session过期时间设置

    网上很多人给出了解答:修改php配置文件中的session.gc_maxlifetime.如果想了解更多session回收机制,继续阅读.(本文环境php5.2) 概述:每一次php请求,会有1/10 ...

  3. cookielifetime php_php中实现精确设置session过期时间的方法

    大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一下session过期时间. 对此,可以在PHP中,设置php.ini,找到session. ...

  4. php中session时间,php中session过期时间的设置方法

    php中session过期时间的设置方法 发布时间:2020-04-22 10:21:19 来源:亿速云 阅读:140 作者:小新 今天小编给大家分享的是php中session过期时间的设置方法,相信 ...

  5. 设置session时间 php,php中实现精确设置session过期时间的方法

    这篇文章主要介绍了php中实现精确设置session过期时间的方法,需要的朋友可以参考下 大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一 ...

  6. php网站源码 设置有效时间,精确设置php中session过期时间的方法

    session过期时间在大多数据情况下我们是设置默认的时间,如果我们有一些特殊的要求可以设置一下session过期时间了,下面我整理了在使用session中一些问题与解决方法,希望例子对各位会有帮助. ...

  7. shiro集成 spring-加密md5配置--权限管理-shiro中的session 等等!!

    目录 1.shiro集成 spring 1.1 导入依赖的包 1.2 web.xml配置 2. 开发自定义Realm 2.1 创建测试数据表 2.3 编写后台支持服务 2.4 编写自定义的Realm ...

  8. 转:设置session过期时间

    原文地址:设置session过期时间 Session一直是我们做web项目经常使用的,以前没太注意,这次又细致的看了下! 1.session其实就是一个Map,键=值对,通过session.getAt ...

  9. java设置过期时间_java设置session过期时间的实现方法

    本文实例讲述了java设置session过期时间的实现方法,分享给大家供大家参考.具体实现方法如下: 1.Timeout in the deployment descriptor (web.xml) ...

  10. ajax能用sesssion,解决Ajax应用中的session过期问题

    现在web开发中,ajax应用的比较多.关于此方面的框架也不少.在应用中都会遇到session过期的问题,如处理不当会影响用户体验,也有可能产生莫名的问题. 结合自己的思考和网上相关内容的参考,给出如 ...

最新文章

  1. 递归函数和预处理学习总结
  2. 山西晋城学籍“失踪”解决方案:可参加高考或转职高
  3. Xamarin图表开发基础教程(6)OxyPlot框架
  4. 京瓷2010复印a4内容不全_京瓷2010复印机,纸卡定影的故障
  5. C++ Primer 5th笔记(3)字符串、向量和数组:数组
  6. 中国氢能行业发展现状与投资规划深度研究报告2022-2027年版
  7. 各类环境渗透测试简述
  8. iOS 应用的生命周期
  9. 优化 .net core 应用的 dockerfile
  10. [html] xml与html有什么区别?
  11. maven清理缓存_mybatis源码初探【二】缓存的实现
  12. iPhone 12不标配充电器后,国产手机配件成了国外抢手货!
  13. C++_类和对象_封装_成员属性私有化---C++语言工作笔记038
  14. 微信html5切水果游戏,H5+JS切水果手机小游戏
  15. ConcurrentHashMap!你居然不知道1.7和1.8可不一样?!
  16. 关于“墨者安全专家3.7”不得不说的事情
  17. 最近在听--《谁杀死了知更鸟》
  18. 牛客刷题<19>使用3-8译码器实现逻辑函数
  19. 『Python学习笔记』Git的使用教程
  20. php集成Stripe支付,海外支付stripe对接支付

热门文章

  1. springcloud用于开发什么项目_为什么说新产品开发有三种形式的项目计划?
  2. 程序员代码面试指南——笔记1
  3. python 图像识别男女_python实现图像识别功能
  4. oracle 11g数据库安装教程
  5. Mac 下svn客户端安装
  6. JAVA 读取shp数据,shp导入,导出工具
  7. 品优影视源码 带会员中心+卡密系统
  8. 全新UI西游H5决战天宫游戏详细图文架设教程
  9. 地图 显示 动态轨迹_野外探路必备神器——奥维互动地图浏览器
  10. Java项目开发流程