shiro+springboot自定义sessionId
在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相关推荐
- SpringBoot Shiro 配置自定义密码加密器
SpringBoot Shiro 配置自定义密码加密器 自定义认证加密方式 /*** 自定义认证加密方式*/ public static class CustomCredentialsMatcher ...
- Shiro+springboot+mybatis(md5+salt+散列)认证与授权-02
代码延续地址:Shiro+springboot+mybatis(md5+salt+散列)认证与授权-01 1.创建t_role角色表(比如管理员admin,普通用户user等),创建t_pers权限表 ...
- 教你 Shiro + SpringBoot 整合 JWT
本篇文章将教大家在 shiro + springBoot 的基础上整合 JWT (JSON Web Token) 如果对 shiro 如何整合 springBoot 还不了解的可以先去看我的上一篇文章 ...
- Shiro教程_2 Shiro+SpringBoot+Mysql+Redis(缓存)
源代码 https://gitee.com/fakerlove/Shiro Shiro+SpringBoot+Mysql+Redis(缓存) 1. 添加依赖 <?xml version=&quo ...
- springboot自定义异常处理
springboot自定义异常处理 参考文章: (1)springboot自定义异常处理 (2)https://www.cnblogs.com/SimpleWu/p/10044468.html 备忘一 ...
- @retention注解作用_分分钟带你玩转SpringBoot自定义注解
在工作中,我们有时候需要将一些公共的功能封装,比如操作日志的存储,防重复提交等等.这些功能有些接口会用到,为了便于其他接口和方法的使用,做成自定义注解,侵入性更低一点.别人用的话直接注解就好.下面就来 ...
- Shiro+springboot+mybatis+EhCache(md5+salt+散列)认证与授权-03
从上文:Shiro+springboot+mybatis(md5+salt+散列)认证与授权-02 当每次进行刷新时,都会从数据库重新查询数据进行授权操作,这样无疑给数据库造成很大的压力,所以需要引入 ...
- php中引入shiro,基于shiro的自定义注解的扩展-图文详解
基于shiro的自定义注解的扩展 这里我们主要采取了shiro的自定义注解的方案.本篇文章主要解决以下的问题.如何通过逻辑进行页面与api接口的关联. shiro的自身注解的用法. 如何编写自定义注解 ...
- shiro框架,自定义realm注入service失败解决办法
shiro框架,自定义realm注入service失败解决办法 报错如下: org.springframework.beans.factory.BeanCreationException: Error ...
最新文章
- java.lang.NoSuchMethodException 错误
- 用程序消除一道概率题的二义性
- APA102C全彩色LED控制IC
- 详解图像直方图均衡化原理,附MATLAB、C、C++源码
- Spring MVC-01循序渐进之Model 2和MVC
- 对一次ARP欺骗分析
- do{...}while(0);写法用途详解
- php青茶什么时候拆,青茶的香味应该如何评判(天赐露)
- Composer学习之————Ubuntu14.04下安装Composer
- Java笔记-DH密钥交换
- 5月购机指南!新机流畅度排行榜:第一名实至名归
- 全国加油站分布数据/停车场分布/公园分布/景区分布/保护区分布/2020年poi感兴趣点
- SpringBoot---Tomcat日志配置
- windows设置路径Path
- Labview筛选符合条件的数据
- Espresso的详细使用
- 华为总裁任正非经典语录
- kali linux 通过粘贴板攻击对方服务器
- 浏览器访问127.0.0.1已拒绝连接
- Hadoop大数据技术复习资料