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,我们会发现之间的增加的那条用户数据不见了

相关推荐
咖啡八杯2 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
糖果店的幽灵3 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
爬也要爬着前进6 小时前
redis主从搭建
数据库·redis·缓存
用户095367515839 小时前
在系统的学习 redis 前的疑惑
redis·go
Suhan429 小时前
IDEA 设置启动参数和环境变量
spring boot·spring·编辑器·idea
吴声子夜歌12 小时前
Redis 3.x——集群故障转移
java·数据库·redis·集群
橘子海全栈攻城狮12 小时前
【最新源码】基于SpringBoot + Vue的超市管理系统的设计与实现D002
java·开发语言·vue.js·spring boot·后端·spring
空中湖12 小时前
Spring AI Function Calling 完全指南:让 AI 查数据库、调 API、发通知
数据库·人工智能·spring
明豆13 小时前
Redis 分布式缓存生产实战
redis·分布式·缓存