Shiro提供了记住我(RememberMe)的功能,比如访问如淘宝等一些网站时,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问,基本流程如下:
- 首先在登录页面选中RememberMe然后登录成功;如果是浏览器登录,一般会把RememberMe的Cookie写到客户端并保存下来;
- 关闭浏览器再重新打开;会发现浏览器还是记住你的;
- 访问一般的网页服务器端还是知道你是谁,且能正常访问;
- 但是比如我们访问淘宝时,如果要查看我的订单或进行支付时,此时还是需要再进行身份认证的,以确保当前用户还是你。
下面是基于上一章节缓存的案例,增加RememberMe的步骤:
步骤1:在ShiroConfiguration配置中 创建Cookie(记住我)管理器@Bean
/**
* cookie管理器;
* @return
*/
@Bean
public CookieRememberMeManager rememberMeManager(){
logger.info("注入Shiro的记住我(CookieRememberMeManager)管理器-->rememberMeManager", CookieRememberMeManager.class);
CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();
//rememberme cookie加密的密钥 建议每个项目都不一样 默认AES算法 密钥长度(128 256 512 位),通过以下代码可以获取
//KeyGenerator keygen = KeyGenerator.getInstance("AES");
//SecretKey deskey = keygen.generateKey();
//System.out.println(Base64.encodeToString(deskey.getEncoded()));
byte[] cipherKey = Base64.decode("wGiHpl

本文详细介绍了如何在Spring Boot应用中使用Apache Shiro框架实现RememberMe功能,让用户在关闭浏览器后再次打开时仍能保持登录状态。主要步骤包括配置Cookie管理器、注入SecurityManager、添加记住我过滤器、更新登录Token以及调整前端页面。测试结果显示,用户在勾选Remember Me后,即使关闭浏览器,再次访问也能直接进入应用页面。
最低0.47元/天 解锁文章
2176

被折叠的 条评论
为什么被折叠?



