当前位置: 首页 > news >正文

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

相关文章:

  • LeetCode 热门100题-合并区间-不熟练
  • 人工智能之姿态估计OpenPose算法源码分析(vgg19,backbone,高斯热度图,单位向量叉乘,向量累加和后求平均,感受野,多个stage纠错)
  • 【数据结构】复杂度
  • AI前端开发与职业倦怠:效率提升的解药
  • 几款dxf文件转Gcode的开源软件
  • SQL CHECK 语句详解
  • vue不是内部或外部命令?
  • Docker 实战与应用:提升开发效率的核心命令与场景解析
  • C语言-章节 1:变量与数据类型 ——「未初始化的诅咒」
  • 相机模数转换
  • Vue响应式原理实现总结(数据劫持Object.defineProperty/Proxy+发布订阅者设计模式)
  • STM32 如何使用DMA和获取ADC
  • 5分钟了解! 探索 AnythingLLM,借助开源 AI 打造私有化智能知识库,熟悉向量数据库
  • 【Unity3D优化】AssetBundle的压缩格式优化
  • Rust 组织管理
  • rk3588部署yolov6
  • Docker配置镜像加速-解决黑马商城部署Mysql失败问题
  • 【算法】递归入门
  • 详解 JavaScript 中 fetch 方法
  • Linux的IO编程基础:从入门到实践
  • “先增聘再离任”又添一例,景顺长城基金经理鲍无可官宣辞职
  • 莫高义在第四届中国新闻发言人论坛开幕式上的致辞
  • 幼儿园教师拍打孩子额头,新疆库尔勒教育局:涉事教师已被辞退
  • 俄乌直接谈判结束,乌称“毫无成果”
  • 时隔三年,俄乌直接谈判重启
  • 陕西三原高新区违法占用土地,被自然资源局罚款10万元