shiro学习笔记(9)——验证码+RememberMe

本文介绍如何在Shiro中实现验证码校验及记住我功能。通过自定义FormAuthenticationFilter进行验证码校验,并实现自动登录。同时介绍了如何配置记住我功能及其实现序列化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 5.17 验证码

  5.17.1 思路

shiro使用FormAuthenticationFilter进行表单认证,验证校验的功能应该加在FormAuthenticationFilter中,在认证之前进行验证码校验。

 

需要写FormAuthenticationFilter的子类,继承FormAuthenticationFilter,改写它的认证方法,在认证之前进行验证码校验。

 

  5.17.2 自定义FormAuthenticationFilter

 

 

 

​​​​​​​  5.17.3 配置自定义FormAuthenticationFilter

 

 

 

​​​​​​​  5.17.4 在login.action对验证错误 进行解析

 

 

​​​​​​​  ​​​​​​​5.17.5 在登陆页面添加验证码

 

 

 

​​​​​​​  5.17.6 在filter配置匿名访问验证码jsp

 

 

 ​​​​​​​​​​​​​​5.18 记住我

用户登陆选择“自动登陆”本次登陆成功会向cookie写身份信息,下次登陆从cookie中取出身份信息实现自动登陆。

  ​​​​​​​5.18.1 用户身份实现java.io.Serializable接口

向cookie记录身份信息需要用户身份信息对象实现序列化接口,如下:

 

 

​​​​​​​​​​​​​​5.18.2 配置rememeberMeManager

 

 

 

​​​​​​​​​​​​​​  5.18.3 登陆页面

 

 

​​​​​​​  5.18.4 配置rememberMe的input名称

 

 

 

  ​​​​​​​​​​​​​​5.18.5 测试

 

自动登陆后,需要查看 cookei是否有rememberMe

 

 

​​​​​​​​​​​​​​  5.18.6 使用UserFilter

如果设置记住我,下次访问某些url时可以不用登陆。将记住我即可访问的地址配置让UserFilter拦截。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值