Shiro,Apache Shiro
Apache Shiro™,是一款强大易用的Java安全框架,用于身份验证,授权,加密和会话管理,总值就是强!比如Shiro能做什么呢
- 验证用户身份
- 用户访问权限控制
- 在非web或EJB容器的环境下,随意使用session API
- 支持单点登陆
- 提供RememberMe功能
- 其他略
为什么选择Shiro
- 易于使用
- 全面 一条龙服务
- 灵活 任何应用环境中使用
- web支持 也提供JSP输出
- 低耦合无缝集成Spring
- 被广泛支持
Shiro四大特性
- Authentication 认证
- Authorization 授权
- Session Management 会话管理
- Cryptography 加密
- web支持,缓存,并发性,测试,运行方式,记住我
Shiro架构三理念
- Subject 当前用户,也可以是其他服务
- SecurityManager 管理所有subject
- Realms 权限验证的DAO
Shiro大致流程是怎么样的
1.先创建一个Subject.login(admin,admin),subject由SubjectUtils.getSubject()获得,在这之前设置manager,SubjectUtils.setSecurityManager(SecurityManager manager),manager的基类是RealmSecurityManager.
2.manager是校验入口,由Authenticator身份验证,可能由AuthenticationStrategy进行多Realm验证
3.Authenticator把相应token传入Realms,按照策略顺序验证身份信息
4.subject.logout(),这里subject其实是个接口,实际用的是DelegatingSubject实现类的方法
复制代码
自定义Realm shiro内部实现权限数据获取两种方式: ini文件和JdbcRealm 继承基类是AuthorizingRealm
代码写一半,SpringBoot启动gg了,晾着先
复制代码