Shiro中所有功能类都是组合进SecurityManager,由客户端进行调用运行的。
以下过程所需的配置文件:
初始化SecurityManager的时候,这些功能类按一定的结构和次序被组合进来
实例的过程分为两步,第一步是进行默认类的组合,第二步是进行配置类的组合,具体是在IniSecurityManagerFactory中进行的。
在进行第一步后,由于自己实现了Realm,因此Realm还没有被实例,而配置中没有进行身份验证策略的配置,所以框架选择了默认的AtLeastOneSuccessfulStrategy策略。
第二步,进行配置类的实例化并组合进SecurityManager
ReflectionBuilder根据ini文件中的配置进行类的实例和属性设置:
第二步执行完毕后,已经按照配置,进行了所有类的组装,结构大体上如此(由于只配置了加密部分的属性,所以还有其他部分属性是在其实例化的同时默认注入的)
如此Shiro中最重要的部分SecurityManager实例化完毕,安静的驻留在内存中,等待客户端的处理请求。
以上代码引用 pull from https://github.com/zhangkaitao/shiro-example
时间: 2024-10-25 00:27:02