zoukankan      html  css  js  c++  java
  • Shiro-SecurityManager解析

    ##架构图/类图 架构图

    ==================================================================================================

    类图 ##解析 ###1)接口定义

    public interface SecurityManager extends Authenticator, Authorizer, SessionManager {
        Subject login(Subject var1, AuthenticationToken var2) throws AuthenticationException;
        void logout(Subject var1);
        Subject createSubject(SubjectContext var1);
    }
    

    Authenticator、Authorizer、SessionManager都是shiro中另外几个组件。Authenticator是认证器,负责认证功能;Authorizer是鉴权器,负责权限鉴定功能;SessionManager负责session管理功能。 ###2)架构原理

    类作用

    • CacheSecurityManager
      抽象类注入了缓存相关

    • RealmSecurityManager
      该类注入了和数据源有关的

    • AuthenticatingSecurityManager
      该类实现了认证的部分功能,支持使SecurityManager封装为Authenticator实例,将验证对象的操作委托给该实例

    • AuthorizingSecurityManager
      该类仅仅为间接继承,并未实现任何接口,完成了授权的部分功能

    • SessionSecurityManager
      该类注入了会话管理器,单纯的继承,没有实现。支持SecurityManager封装SessionManager实例,把session操作都委托给该实例

    • DefaultSecurityManager 这个抽象类是非web环境的安全管理器,只是单纯的继承,没有实现

    • DefaultWebSecurityManager 这个抽象类默认的继承web层次的安全管理器,除了继承之外,还实现了一个接口,这个接口的功能就是判断当前是否是web环境

    总结

    1. SecurityManager默认实例的是DefaultSecurityManager

    2. 如果我们在shiro.ini配置文件配置了[Users]的话那么会自动创建IniRealm

    3. 创建的IniRealm会被绑定到SecurityManager对象中,并且会将账号密码保存到SimpleAccountRealm的User集合中,认证的时候会从此对象中获取

    ##参考文章 shiro SecurityManager详解 shiro中的SecurityManager分析 shiro——SecurityManager、shiro架构原理

  • 相关阅读:
    css居中问题(转)
    Request.ServerVariables 各个参数的用法
    html5 画个球碰撞
    递归生成json
    AspNetPager分页结合存储过程的用法
    sql+aspnetpager+查询功能
    求1+2+……+n
    几种排序的比较 bitmapsort,qsort,set
    利用两个栈,反转其中一个栈的元素
    进程间通信(IPC, Inter Process Communication)读书笔记
  • 原文地址:https://www.cnblogs.com/lifelikeplay/p/14357328.html
Copyright © 2011-2022 走看看