Apache Shiro V1.2 Factory与SecurityManager及其子类的关系

一、Apache Shiro简介

Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能:
  • 认证(AuthentiCation) - 用户身份识别和验证;
  • 授权(AuthoriZation) - 访问控制;
  • 密码加密 - 保护或隐藏数据防止被偷窥;
  • 会话管理 - 每用户相关的时间敏感的状态。

对于任何的应用,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的关系请见下图:

Apache Shiro V1.2 Factory与SecurityManager及其子类的关系_第1张图片

五、用法

通常这样使用Factory 和 SecurityManager:

Factory<SecurityManager> factory = new IniSecurityManagerFactory();
SecurityManager securityManager = factory.getInstance();

或者指定一个配置文件:

Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
SecurityManager securityManager = factory.getInstance();

IniSecurityManagerFactory 是 Factory的子类, DefaultSecurityManager是 SecurityManager的子类。



你可能感兴趣的:(apache,设计模式,shiro,Authentication,authorization,安全相关)