什么是Shiro?
Shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架。
shiro的架构
shiro核心对象的介绍
- SecurityManager : 安全管理器,是shrio框架的核心
- Authenticator : 认证管理器,进行身份和凭证的验证
- Authorizer : 授权器,判断主体(subject)是否拥有某个授权
- Realms : 领域,相当于数据源,一般需要自定义realm
- Cache Manager : 缓存管理器,数据缓存,主要用于缓存授权信息
- Cryptography : 加密模块,提供了一些散列算法,比如MD5, SHA等
- Subject : 主体对象,是shiro框架对外开发的接口 subject.login
shiro实现认证的流程
- 创建token令牌,token中有用户提交的认证信息即账号和密码
- 执行subject.login(token),最终由securityManager通过Authenticator进行认证
- Authenticator的实现ModularRealmAuthenticator,调用自定义的Realm去数据库进行身份认证
- 如果用户名不正确,return null,如果用户名正确直接返回标识,密码比对由shiro自己进行