对于任何的应用,Apache Shiro 都可以提供全面的安全管理服务。
二、Factory 简介
Factory是一个接口类,提供(Factory Method design pattern)工厂方法设计模式的支持。
Factory接口声明的getInstance()方法,由其直接子类AbstractFactory实现。
之后AbstractFactory在实现的getInstance()方法中调用了一个新声明的抽象方法,这个方法也是由其直接子类实现的。
这样,从Factory开始,每个子类都实现父类声明的抽象方法,同时又声明一个新的抽象方法并在实现父类的方法中调用。
请参考最后的关系图。
三、SecurityManager简介
SecurityManager是Apache Shiro框架的核心,在一个应用中只有一个单例的SecurityManager实例存在,是典型的Facade模式。
Apache Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。
SecurityManager为全部的用户完成所有安全相关操作的执行。
四、Factory 与 SecurityManager 及其子类的关系
Factory与SecurityManager的关系请见下图:
五、用法
通常这样使用Factory 和 SecurityManager:
Factory<SecurityManager> factory = new IniSecurityManagerFactory(); SecurityManager securityManager = factory.getInstance();
Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini"); SecurityManager securityManager = factory.getInstance();