接上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相关推荐

  1. springboot整合shiro和session的详细过程和自定义登录拦截器

    文章目录 1.shiro依赖 2.shiro配置 shiro过滤器配置: 关联自定义的其他管理器 自定义会话工厂: 3.登陆时记录用户信息 4.shiro一些工具类的学习 5.自定义登录拦截器 shi ...

  2. SpringBoot整合Shiro实现登录认证和授权CHCache

    文章目录 一. springboot实现普通登录 1 添加依赖 2 编写配置文件 3 新建实体类和mapper 4 编写业务层代码 5 编写控制器 6 编写启动类 7 编写登录页面和主页面 二. sp ...

  3. 补习系列(6)- springboot 整合 shiro 一指禅

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  4. SpringBoot整合Shiro实现权限控制,验证码

    本文介绍 SpringBoot 整合 shiro,相对于 Spring Security 而言,shiro 更加简单,没有那么复杂. 目前我的需求是一个博客系统,有用户和管理员两种角色.一个用户可能有 ...

  5. SpringBoot 整合Shiro 一指禅

    目标 了解ApacheShiro是什么,能做什么: 通过QuickStart 代码领会 Shiro的关键概念: 能基于SpringBoot 整合Shiro 实现URL安全访问: 掌握基于注解的方法,以 ...

  6. springboot整合shiro(超详细,你想要的都在这了)

    Springboot整合Shiro 文章目录 pom依赖 前端页面(thymeleaf整合shiro) thymeleaf中shiro标签解释 数据库(整合mybatis) 理解shiro的几个组成部 ...

  7. 补习系列- springboot 整合 shiro 一指禅

    目标 了解ApacheShiro是什么,能做什么: 通过QuickStart 代码领会 Shiro的关键概念: 能基于SpringBoot 整合Shiro 实现URL安全访问: 掌握基于注解的方法,以 ...

  8. 补习系列(6)-SpringBoot 整合Shiro 一指禅

    目标 了解ApacheShiro是什么,能做什么: 通过QuickStart 代码领会 Shiro的关键概念: 能基于SpringBoot 整合Shiro 实现URL安全访问: 掌握基于注解的方法,以 ...

  9. springboot整合shiro使用shiro-spring-boot-web-starter

    此文章仅仅说明在springboot整合shiro时的一些坑,并不是教程 增加依赖 <!-- 集成shiro依赖 --> <dependency><groupId> ...

最新文章

  1. [PSP]通向5.50-D3的倒数计时
  2. 送大家一份Latex模板呢~!(编译即用)
  3. python教程怎么读_python怎么读本地文件
  4. 交通运输部:预计五一假期全国客运量2.65亿人次
  5. Dubbo学习总结(1)——Dubbo入门基础与实例讲解
  6. 配置SQL Server AlwaysOn高可用性组
  7. OO第三次电梯作业优化
  8. 20181027_任务
  9. #include <iostream> C++ Hello World!
  10. 计算机科学导论的学习
  11. InstallShield 2015 Limited Edition 打包教程
  12. 给大家推荐几本最优秀的编程书
  13. 2022保密教育线上培训考试 01
  14. AT89S52单片机之定时器/计数器
  15. android怎么更换播放器,android 播放器切换 出错
  16. ttk python_python GUI ttk库 -- Apple的学习笔记
  17. 2020年12月编程语言排行榜
  18. 关于使用QML的MediaPlayer实现视频和音频的播放时遇到的一些坑
  19. “网络吸血鬼” Leech
  20. jQuery是一个JavaScript库极大的简化JavaScript编程

热门文章

  1. anydesk远程计算机,利用AnyDesk远程协助解决问题
  2. 侯捷c++课程笔记 (面向对象高级编程)
  3. 微信小程序 picker 自定义数组/对象数组
  4. SolidCAM全套中文视频教程 三轴四轴五轴车床
  5. 五分钟秒懂机器学习混淆矩阵、ROC和AUC
  6. weka操作实现决策树算法中打球与天气的关系
  7. 用tf.one_hot函数写任一坐标为1的二维张量
  8. RDP 优化操作 微软远程桌面 开启显卡加速、60FPS、USB设备重定向
  9. matlab kfcm,KFCM算法MATLAB
  10. SOLIDWORKS Simulation Premium中的非线性提示和技巧