springboot+shiro中自定义session过期时间
在springboot工程中,使用shiro作为权限框架,并采用redis来管理session时,如何自定义session过期时间?
上面与会话或缓存相关的组件有:
- Session Manager:会话管理器
- Session DAO:会话 DAO,将session保存到数据库、缓存等
- Cache Manager:缓存管理器,权限认证的缓存、用户及权限信息的缓存等
若只是做session共享,只需添加SessionDAO即可,不过为了防止出现缓存不一致性的问题,也将数据一起共享,则自定义session方法如下:
- 设置SessionManager:sessionManager.setGlobalSessionTimeout(24 * 60 * 1000);//单位为毫秒
- 设置RedisSessionDAO:redisSessionDAO.setExpire(24 * 60);//单位为秒
- 设置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过期时间相关推荐
- C#发布网站在web.config和IIS中设置Session过期时间
C#发布网站在web.config和IIS中设置Session过期时间 web.config <system.web> <sessionState mode="InProc ...
- php修改sessiob时间_php中session过期时间设置
网上很多人给出了解答:修改php配置文件中的session.gc_maxlifetime.如果想了解更多session回收机制,继续阅读.(本文环境php5.2) 概述:每一次php请求,会有1/10 ...
- cookielifetime php_php中实现精确设置session过期时间的方法
大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一下session过期时间. 对此,可以在PHP中,设置php.ini,找到session. ...
- php中session时间,php中session过期时间的设置方法
php中session过期时间的设置方法 发布时间:2020-04-22 10:21:19 来源:亿速云 阅读:140 作者:小新 今天小编给大家分享的是php中session过期时间的设置方法,相信 ...
- 设置session时间 php,php中实现精确设置session过期时间的方法
这篇文章主要介绍了php中实现精确设置session过期时间的方法,需要的朋友可以参考下 大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一 ...
- php网站源码 设置有效时间,精确设置php中session过期时间的方法
session过期时间在大多数据情况下我们是设置默认的时间,如果我们有一些特殊的要求可以设置一下session过期时间了,下面我整理了在使用session中一些问题与解决方法,希望例子对各位会有帮助. ...
- shiro集成 spring-加密md5配置--权限管理-shiro中的session 等等!!
目录 1.shiro集成 spring 1.1 导入依赖的包 1.2 web.xml配置 2. 开发自定义Realm 2.1 创建测试数据表 2.3 编写后台支持服务 2.4 编写自定义的Realm ...
- 转:设置session过期时间
原文地址:设置session过期时间 Session一直是我们做web项目经常使用的,以前没太注意,这次又细致的看了下! 1.session其实就是一个Map,键=值对,通过session.getAt ...
- java设置过期时间_java设置session过期时间的实现方法
本文实例讲述了java设置session过期时间的实现方法,分享给大家供大家参考.具体实现方法如下: 1.Timeout in the deployment descriptor (web.xml) ...
- ajax能用sesssion,解决Ajax应用中的session过期问题
现在web开发中,ajax应用的比较多.关于此方面的框架也不少.在应用中都会遇到session过期的问题,如处理不当会影响用户体验,也有可能产生莫名的问题. 结合自己的思考和网上相关内容的参考,给出如 ...
最新文章
- 递归函数和预处理学习总结
- 山西晋城学籍“失踪”解决方案:可参加高考或转职高
- Xamarin图表开发基础教程(6)OxyPlot框架
- 京瓷2010复印a4内容不全_京瓷2010复印机,纸卡定影的故障
- C++ Primer 5th笔记(3)字符串、向量和数组:数组
- 中国氢能行业发展现状与投资规划深度研究报告2022-2027年版
- 各类环境渗透测试简述
- iOS 应用的生命周期
- 优化 .net core 应用的 dockerfile
- [html] xml与html有什么区别?
- maven清理缓存_mybatis源码初探【二】缓存的实现
- iPhone 12不标配充电器后,国产手机配件成了国外抢手货!
- C++_类和对象_封装_成员属性私有化---C++语言工作笔记038
- 微信html5切水果游戏,H5+JS切水果手机小游戏
- ConcurrentHashMap!你居然不知道1.7和1.8可不一样?!
- 关于“墨者安全专家3.7”不得不说的事情
- 最近在听--《谁杀死了知更鸟》
- 牛客刷题<19>使用3-8译码器实现逻辑函数
- 『Python学习笔记』Git的使用教程
- php集成Stripe支付,海外支付stripe对接支付