1、什么是shiro?
shiro是一个开源的安全管理框架,可以完成认证、授权、加密、会话管理、缓存等功能
2、shiro功能介绍
Authentication:认证登录,验证用户的合法性
Authorization :授权,授予谁具有访问某些资源的权限
Session Management :会话管理,用户登录后的用户信息通过Session Management进行管理,也就是说用户登陆后就是一次会话,在他退出之前,他的所有信息都在会话中
Cryptography:密码模块,提供了一些加密算法
Web Supportweb:支持,可以很容易的集成到web环境中
Caching: 缓存,用户登陆后,其用户信息、所拥有的角色权限不必每次都查,这样 可以提高效率
Concurrency: shiro支持多线程应用的并发验证
Tesing:提供测试支持
Run As:允许一个用户假装另一个用户(如果他们允许的话)的身份进行访问
Remember Me:记住我,一次登陆后,下次就不用在登陆了
3、shiro架构
从外部看
从内部看
Subject:主体,是和应用代码直接进行交互的对象
SecurityManager:安全管理器,所有与安全相关的操作都会与SecurityManager进行交互,是shiro的核心
Authenticator:认证器,负责subject认证,可以使用认证策略(Authentication Strategy),在什么情况下用户认证才能通过
Authroizer:授权器,控制用户能访问应用中的哪些功能
Realm:领域,用来与外界数据库进行交互的,securityManager验证用户身份的时候,需要从realm中获取用户信息进行比较,来确认用户身份是否合法
SessionManager:管理session生命周期的组件
CacheManager:缓存控制器,缓存很少改变的数据如用户、角色、权限等,从而提高访问效率