美文网首页
SecurityUtils,SecurityManager和Su

SecurityUtils,SecurityManager和Su

作者: JooYip | 来源:发表于2017-08-22 14:58 被阅读0次

写shiro的入门程序的时候有

SecurityUtils.setSecurityManager(securityManager);

Subject subject = SecurityUtils.getSubject();

对涉及的三个类的关系产生了好奇。

打开SecurityUtils,发现Subject和SecurityManager并没有什么关系。

但是网上说Subject是由SecurityManager管理的。于是更好奇了。发现有一个奇怪的东东:

Builder类

打开Builder发现它是Subject接口的内部类。

Builder内部维护了SecurityManager并且在初始化的时候,调用了SecurityUtils的getSecurityManger类,给securityManger赋值了。然后在buildSubject方法中调用了securityManger的createSubject方法去创建Subject。

buildSubject方法

SecurityManager是一个接口,默认的实现类是DefaultSecurityManger,内部维护了一个SubjectFactory(默认实现类为DefaultSubjectFactory)来创建Subject。

相关文章

网友评论

      本文标题:SecurityUtils,SecurityManager和Su

      本文链接:https://www.haomeiwen.com/subject/vyrldxtx.html