farmer111 发表于 2017-1-13 07:22:34

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的关系请见下图:
  

  五、用法
  通常这样使用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的子类。
  

  
  
页: [1]
查看完整版本: Apache Shiro V1.2 Factory与SecurityManager及其子类的关系