Apache Shiro 是Java 的一个安全框架。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在JavaEE 环境。Shiro 可以帮助我们完成:认证、授权、加密、会话管理、与Web 集成、缓存等。
主要功能
登录认证:主要是做登录,验证用户身份。
权限验证:可以理解为授权,例如后台管理员、与普通用户所看到的页面、所操作的功能不一样。
会话管理:用户登录后就是一次会话,在退出前,用户的所有信息都在会话中
数据加密:就是登陆的时候密码会有一个MD5加密。
缓存:shiro将用户信息、拥有的权限数据缓存,提高程序执行效率。
shiro四大核心、六大支持:
![](https://img-blog.csdnimg.cn/img_convert/e00274f232cecdfc3ac549516cc0f7d0.png)
shiro三大重要角色:
Subject:代表当前用户,提供了很多方法,例如 login() 和 logout(),Subject只是一个门面,与Subject的所有交互都会委托给 SecurityManager,SeurityManager才是真正的执行者。
SecurityManager:安全管理器;shiro的核心,他负责与shiro的其他组件进行交互,即所有与安全有关的操作都会与 SecurityManager交互,且管理着所有的Subject;
Realm:shiro从Realm获取安全数据(如用户、角色、权限),SecurityManager要验证用户身份,需要从Realm获取相应的用户信息,判断用户身份是否合法,判断用户角色或权限是否授权。