zoukankan      html  css  js  c++  java
  • shiro 的subject 以及Context 对象的具体的含义。

    shiro 他的本质就是一些列的dofilter 。在过滤的过程会创建subject 。

    subjectContext 相当于内部维护了许多的map,然后维护用户的各种信息。

    doFilter----->SecurityManager---->subjectContext----->创建subject ,

    然后通过解析,赋值,解析赋值,SecurityManager,Session,登陆信息最后通过。

    通过这个逻辑突然有一点明白该代码到底时干什么用的了。

    ThreadContext的说明

    ThreadContext类通过key/value 键值对为每一个线程提供绑定以及解绑对象的方法。

    ThreadContext一共有四个对象

    1. 用来记录日志的,
    2. 用来记录SecurityManger 对象的key 
    3. 用来记录subject_key 对向对应的key 
    4. 最后一个ThreadLocal 

    通过着四行代码,我们大概知道Threadcontext对象的最用了。ThreadCntext 实际上就是通过每个线程的ThreadLocalMap 来存储自己的SecuritManager对象以及Subject .因为用到了ThreadLocal 。因此线程时安全的。

    getResources方法

     该方法用于返回当前线程存储在ThreadLocalMap中的HashMap对象,正常的话,这个hashMp对象中应该存放Security以及Suject兑现给的键值对。

    setResources方法

    可用于设置新的map对象放到Resources 也就是ThreadLoacal对象中去,

    最后总结一张ThreadContext类和线程池的关系

  • 相关阅读:
    BZOJ3732: Network
    BZOJ2705: [SDOI2012]Longge的问题
    BZOJ3712: [PA2014]Fiolki
    BZOJ3709: [PA2014]Bohater
    BZOJ3668: [Noi2014]起床困难综合症
    CoderForces985F-Isomorphic Strings
    CodeForces985C-Liebig's Barrels
    Open-Pit Mining
    Multiplication Game
    象棋
  • 原文地址:https://www.cnblogs.com/dousil/p/13199850.html
Copyright © 2011-2022 走看看