一.说明
Shiro是一个安全框架,项目中主要用它做认证,授权,加密,以及用户的会话管理,虽然Shiro没有SpringSecurity功能更丰富,但是它轻量,简单,在项目中通常业务需求Shiro也都能胜任.
二.项目环境
MyBatis-Plus版本: 3.1.0
SpringBoot版本:2.1.5
JDK版本:1.8
Shiro版本:1.4
Shiro-redis插件版本:3.1.0
数据表(SQL文件在项目中):数据库中测试号的密码进行了加密,密码皆为123456
![9211cf6a8bca6ff06277fb8551830bc3.png](https://i-blog.csdnimg.cn/blog_migrate/72c6ca8fb692195c94c81cb77d845482.jpeg)
Maven依赖如下:
org.springframework.boot spring-boot-starter-web mysql mysql-connector-java runtimeorg.springframework.boot spring-boot-starter-aop org.projectlombok lombok trueorg.springframework.boot spring-boot-starter-data-redis-reactive com.baomidou mybatis-plus-boot-starter 3.1.0com.alibaba druid 1.1.6org.apache.shiro shiro-spring 1.4.0org.crazycake shiro-redis 3.1.0org.apache.commons commons-lang3 3.5复制代码
配置如下:
# 配置端口server: port: 8764spring: # 配置数据源 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/my_shiro?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false username: root password: root type: com.alibaba.druid.pool.DruidDataSource # Redis数据源 redis: host: localhost port: 6379 timeout: 6000 jedis: pool: max-active: 1000 # 连接池最大连接数(使用负值表示没有限制) max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制) max-idle: 10 # 连接池中的最大空闲连接 min-idle: 5 # 连接池中的最小空闲连接# mybatis-plus相关配置mybatis-plus: # xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置) mapper-locations: classpath:mapper/*.xml # 以下配置均有默认值,可以不设置 global-config: db-config: #主键类型 AUTO:"数据库ID自增" INPUT:"用户输入ID