在shiro中,默认返回的sessionId是uuid或者是random随机的,我们可能需要根据我们的需求进行重写,需要重写sessionId我们只需要写一个类实现SessionIdGenerator中的generateId就行

1.自定义sessionId生成

自定义CustomSessionIdGenerator实现SessionIdGenerator接口,重写generateId()方法:

package net.xdclass.rbac_shiro.config;import org.apache.shiro.session.Session;
import org.apache.shiro.session.mgt.eis.SessionIdGenerator;import java.io.Serializable;
import java.util.UUID;/*** @author sqz* @Description: 自定义sessionId生成* @date 2019/7/3 8:50*/
public class CustomSessionIdGenerator implements SessionIdGenerator {@Overridepublic Serializable generateId(Session session) {return "xdclass"+ UUID.randomUUID().toString().replace("-","");}
}

不知道怎么写的直接看源码就行,找CustomSessionIdGenerator的实现类,复制实现代码休休改改就行,下面是源码:

上面我们就简单的重写了个实现方法,然后我们要怎么让实现类生效呢?

我们找到RedisSessionDAO这个类,点进去看源码,如下图:

里面没有设置sessionId的方法,在找其父类,发现里面有 设置我们实现好的CustomSessionIdGenerator的方法,如下图所示:

因为RedisSessionDAO继承了AbstractSessionDAO,所以也拥有了父类的方法,我们只需要将自定义好的CustomSessionIdGenerator设置到redisSessionDAO中就可以了,代码如下:

 /*** 自定义session持久化* @return*/@Beanpublic RedisSessionDAO redisSessionDAO(){RedisSessionDAO redisSessionDAO = new RedisSessionDAO();redisSessionDAO.setRedisManager(getRedisManager());//直接看源码redisSessionDAO.setSessionIdGenerator(new CustomSessionIdGenerator());return redisSessionDAO;}

shiro+springboot自定义sessionId相关推荐

  1. SpringBoot Shiro 配置自定义密码加密器

    SpringBoot Shiro 配置自定义密码加密器 自定义认证加密方式 /*** 自定义认证加密方式*/ public static class CustomCredentialsMatcher ...

  2. Shiro+springboot+mybatis(md5+salt+散列)认证与授权-02

    代码延续地址:Shiro+springboot+mybatis(md5+salt+散列)认证与授权-01 1.创建t_role角色表(比如管理员admin,普通用户user等),创建t_pers权限表 ...

  3. 教你 Shiro + SpringBoot 整合 JWT

    本篇文章将教大家在 shiro + springBoot 的基础上整合 JWT (JSON Web Token) 如果对 shiro 如何整合 springBoot 还不了解的可以先去看我的上一篇文章 ...

  4. Shiro教程_2 Shiro+SpringBoot+Mysql+Redis(缓存)

    源代码 https://gitee.com/fakerlove/Shiro Shiro+SpringBoot+Mysql+Redis(缓存) 1. 添加依赖 <?xml version=&quo ...

  5. springboot自定义异常处理

    springboot自定义异常处理 参考文章: (1)springboot自定义异常处理 (2)https://www.cnblogs.com/SimpleWu/p/10044468.html 备忘一 ...

  6. @retention注解作用_分分钟带你玩转SpringBoot自定义注解

    在工作中,我们有时候需要将一些公共的功能封装,比如操作日志的存储,防重复提交等等.这些功能有些接口会用到,为了便于其他接口和方法的使用,做成自定义注解,侵入性更低一点.别人用的话直接注解就好.下面就来 ...

  7. Shiro+springboot+mybatis+EhCache(md5+salt+散列)认证与授权-03

    从上文:Shiro+springboot+mybatis(md5+salt+散列)认证与授权-02 当每次进行刷新时,都会从数据库重新查询数据进行授权操作,这样无疑给数据库造成很大的压力,所以需要引入 ...

  8. php中引入shiro,基于shiro的自定义注解的扩展-图文详解

    基于shiro的自定义注解的扩展 这里我们主要采取了shiro的自定义注解的方案.本篇文章主要解决以下的问题.如何通过逻辑进行页面与api接口的关联. shiro的自身注解的用法. 如何编写自定义注解 ...

  9. shiro框架,自定义realm注入service失败解决办法

    shiro框架,自定义realm注入service失败解决办法 报错如下: org.springframework.beans.factory.BeanCreationException: Error ...

最新文章

  1. java.lang.NoSuchMethodException 错误
  2. 用程序消除一道概率题的二义性
  3. APA102C全彩色LED控制IC
  4. 详解图像直方图均衡化原理,附MATLAB、C、C++源码
  5. Spring MVC-01循序渐进之Model 2和MVC
  6. 对一次ARP欺骗分析
  7. do{...}while(0);写法用途详解
  8. php青茶什么时候拆,青茶的香味应该如何评判(天赐露)
  9. Composer学习之————Ubuntu14.04下安装Composer
  10. Java笔记-DH密钥交换
  11. 5月购机指南!新机流畅度排行榜:第一名实至名归
  12. 全国加油站分布数据/停车场分布/公园分布/景区分布/保护区分布/2020年poi感兴趣点
  13. SpringBoot---Tomcat日志配置
  14. windows设置路径Path
  15. Labview筛选符合条件的数据
  16. Espresso的详细使用
  17. 华为总裁任正非经典语录
  18. kali linux 通过粘贴板攻击对方服务器
  19. 浏览器访问127.0.0.1已拒绝连接
  20. Hadoop大数据技术复习资料

热门文章

  1. mooc作业怎么上传附件_当下不考虑5G,坚果Pro3与一加7t,你怎么选?
  2. 中文繁体和简体相互转换tranditional.txt文件
  3. idea多个项目合并一个窗口
  4. FFmpeg入门详解之127:GB28181平台安装部署过程 - 可接入海康、大华、华为、科达、宇视等等设备和平台
  5. 产品高于需求:低频产品也可以有高用户活跃度
  6. SLAM研究方向及知识点汇总
  7. 北京理工大学计算机学院课程表,北京理工大学工业设计课程表.doc
  8. iOS开发-键盘样式风格有关设置
  9. vue框架开发环境搭建
  10. 05-分布式计算框架