首页 > 编程知识 正文

shiro框架详解,shiro权限框架

时间:2023-05-04 21:12:03 阅读:46846 作者:4426

提示:写完文章后,目录可以自动生成。 如何生成可以引用右侧的帮助文档

文章目录序言一、shiro保持登录状态的方式? 二、具体流程1 .登录系统2 .关闭浏览器3 .注销系统4 .内存me功能

前言我最近研究了shiro的框架,登录后,我会知道shiro是如何保持登录状态的,也就是说后台服务登录后,你是谁,你有什么权限,角色是什么

一、shiro如何保持登录状态? 目前,大多数web项目都采用前端和后端分离的体系结构,但保持登录状态的最多方法是在请求后端服务时将Token携带到请求的Header上。 Token是从成功登录的后端返回的凭据。 本文介绍了shiro传统的cookie-session如何保持登录状态。

二、具体流程1 .登录系统第一次访问登录管理系统时,后台服务会在响应标头中设置cookie浏览器。 cookie内容中的JSESSIONID是后台服务在这次http会话中保存的sessionId。

登录成功后,每次浏览器请求都会携带此cookie。

此cookie相当于当前登录用户的身份凭证,我们可以使用此cookie访问当前用户在此系统上获得授权的界面。

如果不携带cookie,请求将按shiro过滤器过滤。

在代码中将session信息保存到redis,并将登录用户的id保存到session。

从redis中删除此session记录将禁用登录状态。

2 .关闭浏览器shiro的session机制使用进程的cookie保存sessionId,因此关闭浏览器后该进程将消失。 因此,在下次打开浏览器访问系统时,后端服务会在浏览器中设置新的cookie。 但是,redis没有删除上次登录生成的session,因此您可以继续使用上次登录生成的sessionId访问登录用户允许的界面。

3 .注销系统后,该会话的会话将从redis中删除。 此sessionId将无法访问注销的用户允许的界面。 从源代码中可以看到,注销操作将使session信息为空。

4.RememberMe功能在上述第二点中,我们发现用户关闭浏览器后,在重新打开浏览器进行访问之前登录的系统需要再次登录。

shiro提供了RememberMe功能来解决重新登录问题。

选择打开rememberMe后,后台服务会将rememberMe信息添加到指向浏览器的cookie中。

重新打开浏览器访问服务时,将携带rememberMe信息,后端服务也将通过rememberMe信息验证登录用户的身份。

重新打开浏览器并访问服务时,后端服务会为浏览器设置新的会话id和删除器me。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。