首页 > 其他 > 详细

shiro 的subject 以及Context 对象的具体的含义。

时间:2020-06-27 21:54:25      阅读:97      评论:0      收藏:0      [点我收藏+]

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类和线程池的关系

 

技术分享图片

 

shiro 的subject 以及Context 对象的具体的含义。

原文:https://www.cnblogs.com/dousil/p/13199850.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!