美文网首页
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