
shiro
砖1⃣️的渣男
沿途的风景,尽是不想沾染的过去……
展开
-
shiro源码分析04 -- SubjectDAO
前面的章节说完了Subject的创建过程,创建完Subject需要将其保存起来,而保存的过程则由SubjectDAO完成。既然每一次访问都会创建一个新的Subject,那么为什么还需要SubjectDAO来存储呢?其实SubjectDAO做的事情很少,没有存储Subject,只是将当前Subject的authenticated(是否校验成功)和principal(身份)放入到session中。Subject的生命周期:每一次访问都会创建一个新的subject对象。 将创建的subject对象绑定到原创 2020-06-28 18:17:10 · 743 阅读 · 0 评论 -
shiro源码分析03 -- SubjectFactory
通过上一节的shiro源码分析02 -- SubjectContext我们可以知道,SubjectContext最终将传入SubjectFactory用于构建一个Subject。其实SubjectFactory很简单,就是将通过SubjectContext传递过来的值产生一个Subject,默认使用的是DefaultSubjectFactory,它将返回一个DelegatingSubject实例。...原创 2020-06-11 18:39:07 · 277 阅读 · 0 评论 -
shiro源码分析02 -- SubjectContext
如何构建Subejct上一篇我们讲了Subject这个类,知道了在每一次访问时都会创建一个新的subject,而这个subject会绑定到ThreadContext上,然后通过SecurityUtils在程序的任何地方调用getSubject时都会返回同一个subject。以用户登录时的例子分析源码:通过查看SecurityUtils源码可以看到,它是通过从ThreadContext上获取Subject,如果存在直接返回,否则通过Subject.Builder().buildSubject()去原创 2020-06-11 18:29:02 · 610 阅读 · 0 评论 -
shiro源码分析01 -- Subject
什么是Subject对象在shiro中我们通常会将Subject对象理解为一个用户,同样的它也有可能是一个三方程序,它是一个抽象的概念,可以理解为任何与系统交互的“东西”都是Subject。Subject对象内置属性Subject其实是一个声明接口,使用的默认类是WebDelegatingSubject,是DelegatingSubject的子类。其中这个WebDelegatingSubject里面含有以下的参数:principals:主键(或者标记的集合) authenticate原创 2020-06-11 16:19:17 · 402 阅读 · 1 评论