避免每次重启服务器,用户都要重新登录。
自定义 SessionDAO
1 | public class MySessionDAO extends EnterpriseCacheSessionDAO { |
创建 Session 实体类
1 | public class MySession { |
序列化工具类
1 | public class SerializableUtils { |
添加依赖
1 | <dependency> |
添加配置
1 | spring.datasource.url=jdbc:mysql://127.0.0.1:3306/shiro-login?useUnicode=true&characterEncoding=utf-8 |
Session Mapper
1 |
|
Shiro 添加配置
在 Shiro 配置类中添加:
1 |
|
创建数据表
1 | DROP TABLE IF EXISTS `session`; |
测试
给 Session 设置属性,然后重启应用,测试属性是否存在。
1 | "/setA") ( |
注意:Shiro 不会自动为浏览器创建 Session。
只有调用Session session = subject.getSession();
之后才会创建 Session。
如果 Session 已经存在,那么调用这句就不会再次创建,而是直接获取。
总结
核心就是自定义 SessionDAO,然后配置。