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 支持多线程应用的并发验证
    • 注意点:
      • shiro 不会去维护用户/权限 ,需要我们自己设计提供(通过实现Realm 数据源)
    • 按模块分
      • Subject 主体,主体可以看作是任何可以与应用交互的”用户”
      • Security Manager shiro的核心,所有具体的交互逻辑都通过SecurityManager 控制,他管理着Subject,且负责进行认证,授权 和 及 会话,缓存的管理
      • Authenticator 认证器,负责主体认证,是一个扩展点,可以自定义实现,需要处理认证策略
      • Authorizer 授权人,负责判断用户是否有权限
      • Realm 可以有一个或多个 数据源
      • SessionManager 负责管理 shiro自定义session的生命周期
      • SessionDao 可以将 session 存放到数据库,或存入缓存中
      • CacheManager 用来管理用户,角色,权限等的缓存
      • Cryptography 加密模块,提供了一些常见的加密模块,对密码进行加密/解密