Shiro结合redis的统一会话管理:自定义会话管理器
Shiro结合redis的统一会话管理
步骤分析
构建环境
(1)使用开源组件Shiro-Redis可以方便的构建shiro与redis的整合工程。
<dependency><groupId>org.crazycake</groupId><artifactId>shiro-redis</artifactId><version>3.0.0</version>
</dependency>
(2) 在springboot配置文件中添加redis配置
redis:host: localhostport: 6379password: 123456
自定义shiro会话管理器
package cn.learn.shiro.session;import org.apache.shiro.web.servlet.ShiroHttpServletRequest;
import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
import org.apache.shiro.web.util.WebUtils;
import org.springframework.util.StringUtils;import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.Serializable;/*** 自定义的sessionManager*/
public class CustomSessionManager extends DefaultWebSessionManager {/*** 头信息中具有sessionid* 请求头:Authorization: sessionid** 指定sessionId的获取方式*/protected Serializable getSessionId(ServletRequest request, ServletResponse response) {//获取请求头Authorization中的数据String id = WebUtils.toHttp(request).getHeader("Authorization");if(StringUtils.isEmpty(id)) {//如果没有携带,生成新的sessionIdreturn super.getSessionId(request,response);}else{//返回sessionId;request.setAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_ID_SOURCE, "header");request.setAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_ID, id);request.setAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_ID_IS_VALID, Boolean.TRUE);return id;}}
}
Shiro结合redis的统一会话管理:自定义会话管理器相关推荐
- springboot整合shiro和session的详细过程和自定义登录拦截器
文章目录 1.shiro依赖 2.shiro配置 shiro过滤器配置: 关联自定义的其他管理器 自定义会话工厂: 3.登陆时记录用户信息 4.shiro一些工具类的学习 5.自定义登录拦截器 shi ...
- 事务管理自定义事务管理器
事务管理自定义事务管理器 public class DBUtils {//获取链接//在当前线程中存储所使用的链接private ThreadLocal<Connection> threa ...
- Dubbo自定义日志拦截器
前言 上一篇文章 Spring aop+自定义注解统一记录用户行为日志 记录了 web层中通过自定义注解配合Spring aop自动记录用户行为日志的过程.那么按照分布式架构中Dubbo服务层的调用过 ...
- Dubbo自定义日志拦截器 1
前言 上一篇文章 Spring aop+自定义注解统一记录用户行为日志 记录了 web层中通过自定义注解配合Spring aop自动记录用户行为日志的过程.那么按照分布式架构中Dubbo服务层的调用过 ...
- Shiro框架:缓存、session会话、自定义FormAuthenticationFilter、RemenberMe
上篇的地址:https://blog.csdn.net/a745233700/article/details/81350191 一.Shiro缓存--cacheManager: 针对上一篇授权的时候频 ...
- SpringBoot 基于Shiro + Jwt + Redis的用户权限管理 (三) 鉴权
项目Github地址: https://github.com/baiye21/ShiroDemo SpringBoot 基于Shiro + Jwt + Redis的用户权限管理 (一) 简介与配置 S ...
- 全程配图超清晰的Springboot权限控制后台管理项目实战第二期(Springboot+shiro+mybatis+redis)
全程配图超清晰的Springboot权限控制后台管理项目实战第二期(Springboot+shiro+mybatis+redis) 众所周知,作为一个后端新手学习者,通过项目来学习,增长项目经验,是一 ...
- springBoot中shiro与Redis整合的配置文件
springBoot中shiro与Redis整合的配置文件 整合依赖: < ...
- 【Vue+SpringBoot】超详细!一周开发一个SpringBoot + Vue+MybatisPlus+Shiro+JWT+Redis前后端分离个人博客项目!!!【项目完结】
项目目录 资源准备 前后端分离项目 技术栈 Java后端接口开发 1.前言 2.新建Springboot项目 3.整合mybatis plus 3.统一结果封装 4.整合shiro+jwt,并会话共享 ...
最新文章
- Playmaker全面实践教程之简单的使用Playmaker示例
- 浅谈构造函数与构析函数的调用顺序(转载)
- java 静态绑定原理_Java方法的静态绑定与动态绑定讲解
- python最新面试题_2018年最新Python面试题及答案
- iOS:Masonry 英文原档介绍
- mysql ken len_MySQL EXPLAIN
- 解决数据库导入导出的常见问题集解决办法
- 升级 Node.js 版本遇到的 co 和 pm2 问题解析
- 多分类决策树 r语言_R语言——决策树模型的相关可视化
- 高数复习:极限与连续,一元函数微分学,一元函数积分学,多元函数微分学以及微分方程(思维导图版知识点总结)
- c语言完整表白程序代码,C语言告白代码,一闪一闪亮晶晶~
- 局域网攻击之ARP网关欺骗
- 洞察药监局数据,挖掘万亿价值
- java.io.IOException:Permission denied
- Android进阶之路 - 解决部分手机拍照之后图片被旋转的问题
- C语言基础 输出月份名 问题
- Python数据可视化——散点图
- Java代码实现非对称加密RSA算法示例
- 资讯和兴趣好烦,如何彻底关闭它?
- Android悬浮窗适配全机型,包含8.0,小米魅族华为悬浮窗权限适配demo看这一篇就够了
热门文章
- Atitit 《控制论原理与概论attilax总结
- rtems 4.11 RTC驱动 (arm, beagle)
- MySQL查询本周、上周、本月、上个月份数据的sql代码
- BZOJ2675 : Bomb
- uitableview 默认选中行
- [silverlight]WCF和Web Service(ASMX)的soap header传输方法
- [HDU 1015] Safecracker
- matlab函数每天进步一点点
- 学学python(4):面向对象及类,模块
- 华为FusionCube从融合到超融合 只为让计算变简单