spring session、spring security和redis整合的简单使用

📅 发布时间:2026/7/7 16:10:43 👁️ 浏览次数:
spring session、spring security和redis整合的简单使用
在上一篇**spring session搭配redis的简单使用**文章中我们简单的使用了spring session和redis实现了session的外部化存储下面我们结合spring security进一步体验这三者的搭配。首先新增spring-boot-starter-security依赖!--实现spring boot对security的自动化配置-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-security/artifactId /dependency然后我们简单通过配置文件的方式在内存中创建一个用户# 应用名称 spring: application: name: spring-session-redis-security # 对应 RedisProperties 类 redis: host: localhost port: 6379 password: 479368 # Redis 服务器密码默认为空。生产中一定要设置 Redis 密码 database: 0 # Redis 数据库号默认为 0 timeout: 15000 # Redis 连接超时时间单位毫秒。 # 对应 RedisProperties.Jedis 内部类 jedis: pool: max-active: 8 # 连接池最大连接数默认为 8 。使用负数表示没有限制 同一时间最大只能执行8条sql语句每执行一条语句就会建立一个连接 max-idle: 8 # 默认连接数最大空闲的连接数默认为 8 。使用负数表示没有限制。 min-idle: 0 # 默认连接池最小空闲的连接数默认为 0 。允许设置 0 和 正数。 max-wait: -1 # 连接池最大阻塞等待时间单位毫秒。默认为 -1 表示不限制。 执行语句到数据库响应数据的时间 security: user: name: user password: user server: port: 8858启动应用查看redis访问前数据什么数据都没有访问SessionController中的http://localhost:8858/session/getAll接口先不登陆查看redis可以看到redis多出了一条session数据通过user进行登录再次查看redis我们可以发现先前的sessionId改变了同时还多出了一条数据spring:session:index:org.springframework.session.FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME:user这条数据就是我们刚登陆的user为了了解更多seesion的详细信息我们可以通过hgetall session语句查询hgetall spring:session:sessions:9fea3331-9b01-48ff-b469-1fffcbb0b654最后我们通过访问http://localhost:8858/logout这个接口可以访问到spring security自带的退出登录的页面点击Log Out退出登录然后再出查看redis我们会发现之间的增加的那条用户数据不见了