apache shiro 是一个简单便捷的安全框架,也是官方推荐的安全框架,作用和spring scurity一样,但是却比scurity 轻便,灵活,由于spring boot 中没有整合shiro 所以如果我们要在项目中使用shiro需要自己配置一些东西 接下来开始介绍shiro 的使用
千里之行始于足下,先来认识shiro,上面这张图就是shiro官网的介绍图,可以很清楚的看出来 shiro基本功能包括四个方面
1. authentication(权限认证):通常用于用户登录
2. Autoorization(授权):主要就是给角色授权,就是说这个用户能做什么不能做什么
3. Session管理器:知道如何创建session或者如何管理session
4. Cryptography(加密):通过加密算法,对数据加密的同时,保证数据容易使用
当然也支持其他的一些功能(日后再聊)比方说支持缓存,记住密码,web支持,并发,支持单元测试,支持以另一个用户运行(在许可的情况下)
当然咯 shiro,他不会自己维护权限,这里需要我们去设计。接下来认识shiro代码
当我们的程序开始运行的时候,
1#首先会给到 subject,也就是当前应用程序的用户,是一个抽象的概念
2# SecurityManager 一个安全管理器,也是shiro中真正的执行者,管理着subject
3# realm 域 也就是安全的数据源,最简单的应用就是数据库
接下来看看shiro的架构图,当我们把这张图搞懂了,那么shiro 的学习就只剩下了解代码了
这张图不多介绍,基本的上面也都讲过,需要注意的一点就是,我们可以看得出基本这些shiro中的主体都是被security Manager管理着,
这里使用的是maven,贴上使用的dependency
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<dependency&g