虽然不太推荐使用记住我功能, 但是,还是讲一下这个功能,实际上大多数使用session来管理。

1、applicationContext-shiro.xml文件

  <!-- 安全管理器 --><bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"><!-- 配置记住我 --><property name="rememberMeManager" ref="rememberMeManager"></property></bean><!-- 记住密码Cookie --><bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">  <constructor-arg value="rememberMe"/><!-- 7天,采用spring el表达式来计算,方便修改 --><property name="maxAge" value="#{7 * 24 * 60 * 60}"/><property name="domain" value=".yzixi.com"/> </bean><!-- rememberMe管理器,cipherKey生成见{@code Base64Test.java} --><bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager"><property name="cookie" ref="rememberMeCookie"/>  </bean>

2、登录页面

     <div class="form-actions"><div class="pull-left"><label class="rememberme mt-checkbox mt-checkbox-outline"><input type="checkbox" name="isRememberMe" value="1" /> 记住我<span></span></label></div></div>

3、controller

@RequestMapping(value = "/login", method = RequestMethod.POST)@ResponseBodypublic LeeJSONResult doPostlogin(String username, String password, String captcha, @RequestParam(value="isRememberMe", defaultValue="0") Integer isRememberMe, HttpServletRequest request, HttpServletResponse response) {if (StringUtils.isBlank(username)) {return LeeJSONResult.errorMsg("用户名不能为空");}if (StringUtils.isBlank(password)) {return LeeJSONResult.errorMsg("密码不能为空");}if (!itzixiCaptcha.validate(request, response, captcha)) {return LeeJSONResult.errorMsg("验证码错误, 请重新输入...");}Subject user = SecurityUtils.getSubject();UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray());if (isRememberMe == 1) {token.setRememberMe(true);}try {user.login(token);} catch (UnknownAccountException e) {return LeeJSONResult.errorMsg("账号不存在");} catch (DisabledAccountException e) {return LeeJSONResult.errorMsg("账号未启用");} catch (IncorrectCredentialsException e) {return LeeJSONResult.errorMsg("密码错误");} catch (RuntimeException e) {return LeeJSONResult.errorMsg("未知错误,请联系管理员");}return LeeJSONResult.ok();}

主要是下面这个代码

   if (isRememberMe == 1) {token.setRememberMe(true);}

当我们选中了记住我后,设置到token中即可。

shiro教程:记住我功能相关推荐

  1. java shiro 访问频率_java shiro配置记住密码功能 RememberMe

    一般来讲,记住密码的基本处理,就是把用户的一些基本信息(密码)存入浏览器的Cookie,下次登录的时候优先验证Cookie,后端做处理:以此来实现记住密码的功能!使用shiro自带的RememberM ...

  2. Shiro 教程,Shiro教程0.2 下载,Shiro功能修复与升级说明。

    2019独角兽企业重金招聘Python工程师标准>>> Shiro + SSM(框架) + Freemarker(jsp)讲解的权限控制Demo,还不赶快去下载? 原文链接:http ...

  3. [Shiro教程] Shiro 教程基于SSM(SpringMVC + Spring + Mybatis)EHCache版本

    一.Shiro简介 Apache Shiro 是 Java  的一个安全框架.我们经常看到它被拿来和 Spring  的 Security  来对比.大部分人认为 Shiro  比 Security  ...

  4. [Shiro教程] Shiro 教程基于SSM(SpringMVC + Spring + Mybatis)

    一.Shiro简介 Apache Shiro 是 Java  的一个安全框架.我们经常看到它被拿来和 Spring  的 Security  来对比.大部分人认为 Shiro  比 Security  ...

  5. shiro教程(2)- shiro介绍

    shiro教程系列 shiro教程(3)-shiro授权 1 shiro介绍  1.1 什么是shiro Shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身 ...

  6. Spring Security记住我功能之潜在的账号盗取风险

    Spring Security 前言 Spring Security过滤器链 账号风险 如何避免呢? 前言 记住我功能方便是大家看得见的,但是安全性却令人担忧.因为Cookie毕竟是保存在客户端的,很 ...

  7. 2017.2.16 开涛shiro教程-第十七章-OAuth2集成(一)服务器端

    原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介 ...

  8. Shiro 教程_1

    教案 https://gitee.com/fakerlove/Shiro 文章目录 Shiro 教程 1. Shiro 介绍 1.1 什么是 Shiro 1.2 Shiro 好处 1.3 Shiro ...

  9. 9.Spring Security添加记住我功能

    在网站的登录页面中,记住我选项是一个很常见的功能,勾选记住我后在一段时间内,用户无需进行登录操作就可以访问系统资源.在Spring Security中添加记住我功能很简单,大致过程是:当用户勾选了记住 ...

最新文章

  1. 设计模式------工厂方法模式
  2. 求1+2+……+N的和
  3. Mybatis接口注解开发
  4. rtsp协议_基于libVLC的视频播放器(支持RTSP协议)
  5. vue-router实例
  6. 鸟哥学习笔记---网络驱动器设备iSCSI
  7. git仓库的推送问题
  8. Spring----JmsTemplate
  9. 小米“小仙女”来了:强大美颜 女性专属的定制手机
  10. 今日恐慌与贪婪指数为38 恐慌程度明显上升
  11. 计算机主页为什么打不开怎么办,主页被限制,打不开怎么办?
  12. 算法分析与设计实验报告——实现分治法求解棋盘覆盖问题
  13. YTU oj 3272: 公民身份号码
  14. 有些人的微信字体可以变成蓝色,点进去就可以知道答案,这是为什么呢?
  15. IE浏览器提示安全证书过期怎么办
  16. 如何将高效设计应用于 DAO?
  17. openCV中二值化图像的方法
  18. 2020再谈软件测试人员的核心竞争力
  19. shell脚本编程for循环求阶乘_shell脚本循环及函数
  20. Linux设备驱动-platform虚拟总线dya01

热门文章

  1. 如何用VS2017打开VS2010(低版本)文件
  2. stm8s003 8K空间不够用,出现报错,修改stvd参数进行最优化
  3. linux下怎么编译贪吃蛇,Linux 环境下C语言编译实现贪吃蛇游戏(转载)
  4. VMProtect SDK+ASProtect SDK保护
  5. VMprotect静态跟踪 字节码反编译
  6. MultiByteToWideChar和WideCharToMultiByte
  7. 【Web安全】JSP内存马研究
  8. 【安全漏洞】苹果取证的分析
  9. 【Docker】备份Docker镜像image、容器container、数据volume
  10. 3、HTML导入外部样式表(HTML导入CSS文件)