Shiro---比springSecurity短小精悍

361 阅读1分钟

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了,晾着先