SpringBoot整合Shiro实现RememberMe
接上Springboot Shiro实现用户验
shiro提供了RememberMe功能,用户登录状态不会因为浏览器的关闭而失效,知道cookie过期
更改ShiroConfig
加入cookie管理配置
/**
* cookie对象
* @return
*/
public SimpleCookie rememberMeCookie() {// 设置cookie名称,对应login.html页面的<input type="checkbox" name="rememberMe"/>SimpleCookie cookie = new SimpleCookie("rememberMe");// 设置cookie的过期时间,单位为秒,这里为一天cookie.setMaxAge(86400);return cookie;
}/**
* cookie管理对象
* @return
*/
public CookieRememberMeManager rememberMeManager() {CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();cookieRememberMeManager.setCookie(rememberMeCookie());// rememberMe cookie加密的密钥 cookieRememberMeManager.setCipherKey(Base64.decode("4AvVhmFLUs0KTA3Kprsdag=="));return cookieRememberMeManager;
}
将cookie管理对象配置加入到SecurityManager
@Beanpublic SecurityManager securityManager() {// 配置SecurityManager,并注入shiroRealmDefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();securityManager.setRealm(shiroRealm());//cookie管理配置对象securityManager.setRememberMeManager(rememberMeManager());return securityManager;}
修改过滤权限配置
将filterChainDefinitionMap.put("/**", "authc");
修改为 filterChainDefinitionMap.put("/**", "user");
因为已经通过验证,不需要在验证
authc与user有何不同
Controller
更改LoginController中的login()方法
@PostMapping("/login")
@ResponseBody
public ResponseBo login(String username, String password, Boolean rememberMe) {password = MD5Utils.encrypt(username, password);UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe);Subject subject = SecurityUtils.getSubject();try {subject.login(token);return ResponseBo.ok();} catch (UnknownAccountException e) {return ResponseBo.error(e.getMessage());} catch (IncorrectCredentialsException e) {return ResponseBo.error(e.getMessage());} catch (LockedAccountException e) {return ResponseBo.error(e.getMessage());} catch (AuthenticationException e) {return ResponseBo.error("认证失败!");}
}
当rememberMe传入参数true时,shiro会帮我们记住用户的登录状态
SpringBoot整合Shiro实现RememberMe相关推荐
- springboot整合shiro和session的详细过程和自定义登录拦截器
文章目录 1.shiro依赖 2.shiro配置 shiro过滤器配置: 关联自定义的其他管理器 自定义会话工厂: 3.登陆时记录用户信息 4.shiro一些工具类的学习 5.自定义登录拦截器 shi ...
- SpringBoot整合Shiro实现登录认证和授权CHCache
文章目录 一. springboot实现普通登录 1 添加依赖 2 编写配置文件 3 新建实体类和mapper 4 编写业务层代码 5 编写控制器 6 编写启动类 7 编写登录页面和主页面 二. sp ...
- 补习系列(6)- springboot 整合 shiro 一指禅
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...
- SpringBoot整合Shiro实现权限控制,验证码
本文介绍 SpringBoot 整合 shiro,相对于 Spring Security 而言,shiro 更加简单,没有那么复杂. 目前我的需求是一个博客系统,有用户和管理员两种角色.一个用户可能有 ...
- SpringBoot 整合Shiro 一指禅
目标 了解ApacheShiro是什么,能做什么: 通过QuickStart 代码领会 Shiro的关键概念: 能基于SpringBoot 整合Shiro 实现URL安全访问: 掌握基于注解的方法,以 ...
- springboot整合shiro(超详细,你想要的都在这了)
Springboot整合Shiro 文章目录 pom依赖 前端页面(thymeleaf整合shiro) thymeleaf中shiro标签解释 数据库(整合mybatis) 理解shiro的几个组成部 ...
- 补习系列- springboot 整合 shiro 一指禅
目标 了解ApacheShiro是什么,能做什么: 通过QuickStart 代码领会 Shiro的关键概念: 能基于SpringBoot 整合Shiro 实现URL安全访问: 掌握基于注解的方法,以 ...
- 补习系列(6)-SpringBoot 整合Shiro 一指禅
目标 了解ApacheShiro是什么,能做什么: 通过QuickStart 代码领会 Shiro的关键概念: 能基于SpringBoot 整合Shiro 实现URL安全访问: 掌握基于注解的方法,以 ...
- springboot整合shiro使用shiro-spring-boot-web-starter
此文章仅仅说明在springboot整合shiro时的一些坑,并不是教程 增加依赖 <!-- 集成shiro依赖 --> <dependency><groupId> ...
最新文章
- [PSP]通向5.50-D3的倒数计时
- 送大家一份Latex模板呢~!(编译即用)
- python教程怎么读_python怎么读本地文件
- 交通运输部:预计五一假期全国客运量2.65亿人次
- Dubbo学习总结(1)——Dubbo入门基础与实例讲解
- 配置SQL Server AlwaysOn高可用性组
- OO第三次电梯作业优化
- 20181027_任务
- #include <iostream> C++ Hello World!
- 计算机科学导论的学习
- InstallShield 2015 Limited Edition 打包教程
- 给大家推荐几本最优秀的编程书
- 2022保密教育线上培训考试 01
- AT89S52单片机之定时器/计数器
- android怎么更换播放器,android 播放器切换 出错
- ttk python_python GUI ttk库 -- Apple的学习笔记
- 2020年12月编程语言排行榜
- 关于使用QML的MediaPlayer实现视频和音频的播放时遇到的一些坑
- “网络吸血鬼” Leech
- jQuery是一个JavaScript库极大的简化JavaScript编程
热门文章
- anydesk远程计算机,利用AnyDesk远程协助解决问题
- 侯捷c++课程笔记 (面向对象高级编程)
- 微信小程序 picker 自定义数组/对象数组
- SolidCAM全套中文视频教程 三轴四轴五轴车床
- 五分钟秒懂机器学习混淆矩阵、ROC和AUC
- weka操作实现决策树算法中打球与天气的关系
- 用tf.one_hot函数写任一坐标为1的二维张量
- RDP 优化操作 微软远程桌面 开启显卡加速、60FPS、USB设备重定向
- matlab kfcm,KFCM算法MATLAB
- SOLIDWORKS Simulation Premium中的非线性提示和技巧