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

http://www.dtcms.com/a/20398.html

相关文章:

  • 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编程基础:从入门到实践
  • 《Spring实战》(第6版)第2章 开发Web应用
  • 【xdoj-离散线上练习】T234(C++)
  • 初始c语言(指针和结构体)
  • 数据结构——栈
  • Linux 更改 SSH 默认端口以提升服务器安全
  • 数据结构与算法之排序算法-选择排序
  • APP端弱网模拟与网络测试:如何确保应用在各种网络环境下稳定运行
  • 【动态规划】斐波那契数列模型
  • OpenCV 模板匹配
  • 算法-链表篇03-反转链表