框架支持
shiro是一个java的安全框架,可以用在JavaSE环境,也可以用在JavaEE环境,可以帮助我们完成:认证、授权、加密、会话管理、与 Web 集成、缓存等。
基本功能
-
Authentication
用户认证,即用户的身份是否合法 -
Authorization
授权,即验证权限,判断当前用户是否能操作某个资源。 -
Session Management
会话管理,不依赖web环境 -
Cryptography
加密,保护数据的安全,例如密码的加密 -
Web Support
web支持 -
Caching
缓存支持,权限验证操作是比较频繁的,缓存支持可以不需要每次都从数据库读取。 -
Concurrency
多线程支持,高并发情况处理。 -
Testing
提供测试支持; -
Run As
允许一个用户假装为另一个用户(如果他们允许)的身份进行访问; -
Remember Me
:记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了
Shiro 不会去维护用户、维护权限;这些需要我们自己去设计 / 提供;然后通过相应的接口注入给 Shiro
框架内部结构
shiro内部结构-
Subject
主体,与系统交互的用户 -
Security Manager
相当于 SpringMVC 中的 DispatcherServlet 或者 Struts2 中的 FilterDispatcher;是 Shiro 的心脏;所有具体的交互都通过 SecurityManager 进行控制;它管理着所有 Subject、且负责进行认证和授权、及会话、缓存的管理 -
Authentication(可扩镇)
认证器,负责主体认证的 -
Authorizier
授权器,或者访问控制器,用来决定主体是否有权限进行相应的操作;即控制着用户能访问应用中的哪些功能; -
Realms
相当与数据源的管理 -
SessionManager
会话管理器
使用流程
shiro使用流程- 应用代码通过 Subject 来进行认证和授权,而 Subject 又委托给 SecurityManager;
- 我们需要给 Shiro 的 SecurityManager 注入 Realm,从而让 SecurityManager 能得到合法的用户及其权限进行判断。
总结
网上的教程https://www.w3cschool.cn/shiro/co4m1if2.html
其实这么多就回答三个问题
- 1.shiro能做什么
- 2.shiro内部的构造到底怎么样
- 3.如果我们上手shiro的话,大概思路是什么样的
网友评论