zoukankan      html  css  js  c++  java
  • shiro的Subject对象创建过程

    Subject是怎么创建的

    首先前面讲了,shiro其实就是一连串的过滤器链,过滤器链的话就是依次执行doFilter方法:我们直接找doFilter的shiro包的实现:
    在这里插入图片描述
    注意,spring包也有个叫做OncePerRequestFilter的类;

    Subject创建入口

    我们看OncePerRequestFilter这个类的doFilter方法,是final的,不会被覆写,然后就执行doFilterInternal,还记得第一次请求当时传进来的是什么类吗?是AbstractShiroFilter
    在这里插入图片描述

    在这里插入图片描述
    我们看doFilterInternal的实现:
    在这里插入图片描述
    在这里插入图片描述

    具体创建subject方法

    我们直接到具体创建的方法,看源码直接点进去就好了:
    最后是DefaultSecurityManager方法调用的createSubject
    在这里插入图片描述
    就是通过DefaultSecurityManager通过SubjectContext来创建的,SubjectContext的具体实现就是相当于内部维护了个map,然后和用户的各种信息:
    然后通过各种解析,赋值,赋值SecurityManager,session,登录信息最后通过

    返回Subject

    DefaultWebSubjectFactory的SUbject工厂类创建出Subject;至此创建结束;
    在这里插入图片描述

    世界上所有的不公平都是由于当事人能力不足造成的.
  • 相关阅读:
    nginx学习编译安装(1)
    媒体查询
    web前端开发--超链接
    web前端开发--列表
    web前端开发--格式化文本与段落
    DIV与SPAN
    CSS基础
    表的创建
    数据库存储结构
    关系完整性约束
  • 原文地址:https://www.cnblogs.com/javayida/p/13346782.html
Copyright © 2011-2022 走看看