Shiro
- 按流程
- Subject (代表了”用户”(指当前调用方)) 门面
- SecurityManager (安全管理器),所有 Subject 的请求都委托给安全管理器处理 核心
- Realm 域(数据源),shiro从realm 中取出需要的数据(用户,角色,权限等信息)
- 流程说明:
- 应用程序通过Subject 来给用户认证和授权,而Subject 又把请求委托给 SecurityManager 处理
- 我们需要给SecurityManager 注入Realm 对象,从而让SecurityManager 拿到合法的用户和权限等信息进行判断
- 参考地址
- 按特性分
- 主要支持点
- Authentication 身份验证,
- Authorization 授权,权限
- Session Manager (会话管理 )
- cryptography (加密,保护数据安全性)
- 辅助支持特性
- Caching 缓存支持
- Remember me (记住我)
- Run As (允许一个用户假装成另一个用户)
- Web环境支持
- Testingt 测试支持
- Concurrent 支持多线程应用的并发验证
- Caching 缓存支持
- 主要支持点
- 注意点:
- shiro 不会去维护用户/权限 ,需要我们自己设计提供(通过实现Realm 数据源)
- 按模块分
- Subject 主体,主体可以看作是任何可以与应用交互的”用户”
- Security Manager shiro的核心,所有具体的交互逻辑都通过SecurityManager 控制,他管理着Subject,且负责进行认证,授权 和 及 会话,缓存的管理
- Authenticator 认证器,负责主体认证,是一个扩展点,可以自定义实现,需要处理认证策略
- Authorizer 授权人,负责判断用户是否有权限
- Realm 可以有一个或多个 数据源
- SessionManager 负责管理 shiro自定义session的生命周期
- SessionDao 可以将 session 存放到数据库,或存入缓存中
- CacheManager 用来管理用户,角色,权限等的缓存
- Cryptography 加密模块,提供了一些常见的加密模块,对密码进行加密/解密