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

在上一篇**spring session搭配redis的简单使用**文章中,我们简单的使用了spring session和redis,实现了session的外部化存储,下面我们结合spring security进一步体验这三者的搭配。

首先新增spring-boot-starter-security依赖

复制代码
 <!--实现spring boot对security的自动化配置-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-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,我们会发现之间的增加的那条用户数据不见了

相关推荐
来杯@Java4 小时前
图书管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·mybatis·课程设计
卷毛的技术笔记5 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
云烟成雨TD9 小时前
Spring AI 1.x 系列【33】RAG Advisor 组件与四大分层架构
java·人工智能·spring
yurenpai(27届找实习中)9 小时前
redis_点评(21.好友关注——关注、取关功能实现;共同关注功能实现)
数据库·redis·缓存
Trouvaille ~9 小时前
【Redis篇】Set 与 Zset:集合运算与排行榜的终极武器
数据库·redis·缓存·set·跳表·后端开发·zset
J2虾虾9 小时前
Spring AI Alibaba - Tools
服务器·人工智能·spring
J2虾虾12 小时前
Spring AI Alibaba - 人工介入(Human-in-the-Loop)
java·人工智能·spring
J2虾虾12 小时前
Spring AI Alibaba - Skills 技能
人工智能·python·spring
小小工匠13 小时前
Redis - 基本架构:一个键值数据库到底由什么组成
数据库·redis·架构
步十人14 小时前
【Redis】网络高并发模型
网络·数据库·redis