shiro教程:记住我功能
虽然不太推荐使用记住我功能, 但是,还是讲一下这个功能,实际上大多数使用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教程:记住我功能相关推荐
- java shiro 访问频率_java shiro配置记住密码功能 RememberMe
一般来讲,记住密码的基本处理,就是把用户的一些基本信息(密码)存入浏览器的Cookie,下次登录的时候优先验证Cookie,后端做处理:以此来实现记住密码的功能!使用shiro自带的RememberM ...
- Shiro 教程,Shiro教程0.2 下载,Shiro功能修复与升级说明。
2019独角兽企业重金招聘Python工程师标准>>> Shiro + SSM(框架) + Freemarker(jsp)讲解的权限控制Demo,还不赶快去下载? 原文链接:http ...
- [Shiro教程] Shiro 教程基于SSM(SpringMVC + Spring + Mybatis)EHCache版本
一.Shiro简介 Apache Shiro 是 Java 的一个安全框架.我们经常看到它被拿来和 Spring 的 Security 来对比.大部分人认为 Shiro 比 Security ...
- [Shiro教程] Shiro 教程基于SSM(SpringMVC + Spring + Mybatis)
一.Shiro简介 Apache Shiro 是 Java 的一个安全框架.我们经常看到它被拿来和 Spring 的 Security 来对比.大部分人认为 Shiro 比 Security ...
- shiro教程(2)- shiro介绍
shiro教程系列 shiro教程(3)-shiro授权 1 shiro介绍 1.1 什么是shiro Shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身 ...
- Spring Security记住我功能之潜在的账号盗取风险
Spring Security 前言 Spring Security过滤器链 账号风险 如何避免呢? 前言 记住我功能方便是大家看得见的,但是安全性却令人担忧.因为Cookie毕竟是保存在客户端的,很 ...
- 2017.2.16 开涛shiro教程-第十七章-OAuth2集成(一)服务器端
原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介 ...
- Shiro 教程_1
教案 https://gitee.com/fakerlove/Shiro 文章目录 Shiro 教程 1. Shiro 介绍 1.1 什么是 Shiro 1.2 Shiro 好处 1.3 Shiro ...
- 9.Spring Security添加记住我功能
在网站的登录页面中,记住我选项是一个很常见的功能,勾选记住我后在一段时间内,用户无需进行登录操作就可以访问系统资源.在Spring Security中添加记住我功能很简单,大致过程是:当用户勾选了记住 ...
最新文章
- 设计模式------工厂方法模式
- 求1+2+……+N的和
- Mybatis接口注解开发
- rtsp协议_基于libVLC的视频播放器(支持RTSP协议)
- vue-router实例
- 鸟哥学习笔记---网络驱动器设备iSCSI
- git仓库的推送问题
- Spring----JmsTemplate
- 小米“小仙女”来了:强大美颜 女性专属的定制手机
- 今日恐慌与贪婪指数为38 恐慌程度明显上升
- 计算机主页为什么打不开怎么办,主页被限制,打不开怎么办?
- 算法分析与设计实验报告——实现分治法求解棋盘覆盖问题
- YTU oj 3272: 公民身份号码
- 有些人的微信字体可以变成蓝色,点进去就可以知道答案,这是为什么呢?
- IE浏览器提示安全证书过期怎么办
- 如何将高效设计应用于 DAO?
- openCV中二值化图像的方法
- 2020再谈软件测试人员的核心竞争力
- shell脚本编程for循环求阶乘_shell脚本循环及函数
- Linux设备驱动-platform虚拟总线dya01
热门文章
- 如何用VS2017打开VS2010(低版本)文件
- stm8s003 8K空间不够用,出现报错,修改stvd参数进行最优化
- linux下怎么编译贪吃蛇,Linux 环境下C语言编译实现贪吃蛇游戏(转载)
- VMProtect SDK+ASProtect SDK保护
- VMprotect静态跟踪 字节码反编译
- MultiByteToWideChar和WideCharToMultiByte
- 【Web安全】JSP内存马研究
- 【安全漏洞】苹果取证的分析
- 【Docker】备份Docker镜像image、容器container、数据volume
- 3、HTML导入外部样式表(HTML导入CSS文件)