Shiro(一)——Shiro概述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34598667/article/details/84639638

什么是Apache Shiro?

Apache的强大灵活的开源安全框架
可以完成认证,授权,企业会话管理,安全加密等功能


Shiro与Spring Security比较

Apache Shiro:shiro不依赖于spring,可脱离Spring,简单灵活,shiro不仅可以实现web应用的权限管理,还可以实现c/s系统,分布式系统权限管理,shiro属于轻量框架,目前使用率广泛。
Spring Security:比较复杂笨重,不能脱离了Spring单独使用。


Shiro架构

在这里插入图片描述

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

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

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

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

  • sessionDao:通过sessionDao管理session数据。

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

  • realm:领域,相当于数据源,通过realm存取认证、授权相关数据。realm是用户的信息认证器和用户的权限认证器,我们需要自己来实现Realms来自定义的管理我们自己系统内部的权限规则。

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


Shiro相关jar包

shiro-core是核心包必选选项,还提供了与web整合的、与spring整合的shiro-spring、与任务调度quarz整合的shiro-quartz等。下面是shiro各jar包的maven坐标。

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


下一节详细介绍Shiro的认证。

猜你喜欢

转载自blog.csdn.net/qq_34598667/article/details/84639638