Shiro架构

1 shiro介绍

  shiroapache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权、加密、会话管理等功能,组成了一个通用的安全认证框架。

2 总览

   在最顶层,Shiro的架构有3个主要概念:Subject、SecurityManager和Realms。

   

2.1 Subject

  Subject即主体,外部应用与subject进行交互,subject记录了当前操作用户,将用户的概念理解为当前操作的主体,可能是一个通过浏览器请求的用户,也可能是一个运行的程序。

  Subjectshiro中是一个接口,接口中定义了很多认证授相关的方法,外部程序通过subject进行认证授,而subject是通过SecurityManager安全管理器进行认证授权。

2.2 SecurityManager

  SecurityManager即安全管理器,对全部的subject进行安全管理,它是shiro的核心,负责对所有的subject进行安全管理。通过SecurityManager可以完成subject的认证、授权等。

2.3 Realm

    Realm即领域,相当于datasource数据源。连接shiro与用户数据的桥梁,shiro需要访问用户的安全数据时,如:用户认证和授权,通过系统配置的各种realm从数据源读取数据。

3 详细说明

  

      

  subject:主体,可以是用户也可以是程序,主体要访问系统,系统需要对主体进行认证、授权。

  securityManager:安全管理器,主体进行认证和授权都 是通过securityManager进行。

  authenticator:认证器,主体进行认证最终通过authenticator进行的。

  authorizer:授权器,主体进行授权最终通过authorizer进行的。

  sessionManagerweb应用中一般是用web容器对session进行管理,shiro也提供一套session管理的方式。

  SessionDao:  通过SessionDao管理session数据,针对个性化的session数据存储需要使用sessionDao

  cacheManager:缓存管理器,主要对session和授权数据进行缓存,比如将授权数据通过cacheManager进行缓存管理,和ehcache整合对缓存数据进行管理。

   realm:域,领域,相当于数据源,通过realm存取认证、授权相关数据。

  注意:在realm中存储授权和认证的逻辑。

   cryptography密码管理,提供了一套加密/解密的组件,方便开发。比如提供常用的散列、加/解密等功能。比如 md5散列算法。

4 jar包

   shiro-core:核心包,shiro-web:与Web整合,shiro-spring:与spring整合,shiro-quartz:与任务调度整合

<dependency>
        <groupId>org.apache.shiro</groupId>
        <artifactId>shiro-core</artifactId>
    <version>1.3.2</version>
</dependency>
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-web</artifactId>
    <version>1.3.2</version>
</dependency>
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-spring</artifactId>
    <version>1.3.2</version>
</dependency>
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-ehcache</artifactId>
    <version>1.3.2</version>
</dependency>
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-quartz</artifactId>
    <version>1.3.2</version>
</dependency>
        

  也可以简单粗暴的引入所有的jar包

<dependency>
	<groupId>org.apache.shiro</groupId>
	<artifactId>shiro-all</artifactId>
	<version>1.3.2</version>
</dependency>

5 官网地址 

  http://shiro.apache.org/

 

原文地址:https://www.cnblogs.com/zhangxianming/p/8654906.html