Shiro实现登录功能的流程及配置

Shiro实现登录功能的流程及配置,第1张

①login.html 发送AJAX异步请求到服务器,携带 username + password

②进入服务器,首先经过spring的编码过滤器,处理编码.

web.xml

③ 在服务器启动时,便创建了securityManager, 类似于dispatcherServlet 对进行登录的 *** 作进行统一的管理.

​ Username + Password 生成Token,用于验证的准备

④ 创建自己的Realm,同时数据源交给spring容器管理

shiro.ini

告知shiro,配置数据源realm

⑤ 安全管理器从spring中取出数据源,进行验证.(先验证username ,再验证密码,验证成功则将用户存入缓存(session),以备验证使用)

后续页面发送请求携带sessionId,验证是否存在此用户.(下为源码)

⑥验证完成后,经过一系列的过滤器

​ 这些过滤器配置在shiro.xml中.

在web.xml中配置shiro的过滤器代理DelegatingFilterProxy.在服务器启动时,到spring中寻找到这些过滤器的对象,形成调用链.

shiro的过滤器一般优先于服务器的过滤器执行.

⑦自建过滤器,返回AJAX信息

⑧经过一系列过滤器,页面接收返回信息

至此,shiro登录认证完成,用户信息存在于session中(此session被shiro封装).

在同一个会话中,页面的多次请求将通过携带SessionId,找到服务器的用户信息验证是否已登录.

下为源码

Shiro 的注销功能 也是获取session,清空session.

STRUTS 2,它只是一个视图层的框架,并非持久层框架,它的LIB里面没有包含连接数据库的东西,如果需要连接数据库

可以采用JDBC JAVA BEAN的方式,或者采用第三方的连接池,或者与持久层框架(如:Hibernate,Ibatis)结合的方式,来连接数据库。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6817355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存