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

相关推荐
CV工程师丁Sir8 小时前
ArkWeb 手记 04|DevTools 调试与缓存清理
java·spring·缓存·harmonyos
Joy T15 小时前
Spring AI 项目中的 pom.xml、application.yml 与 Nacos:从依赖管理到运行配置
spring·nacos·pom.xml·profile·参数配置·application.yml
禾小西17 小时前
Redis:从两大维度和三大主线建立知识体系
数据库·redis·缓存
禾小西18 小时前
Redis 数据结构:快速的 Redis 有哪些慢操作?
数据结构·数据库·redis
行百里er21 小时前
Redis 事务与 Pipeline:批量操作的正确姿势
redis
fundoit1 天前
为什么需要 Access Token 和 ID Token 两个令牌
java·spring·架构·github·oauth2
fengkai45451 天前
十二、Redis -1
运维·数据库·redis
鱼宵1 天前
Spring AI 流式输出:Flux + SSE 打字机,回答不再干等三秒
java·人工智能·spring·sse·springai·流式输出
小鹿的周先生1 天前
第19章-Agent
java·spring·ai
写后端的胖头鱼1 天前
Redis 的 RDB 和 AOF
java·数据库·redis