SpringSecurity - spring-session-data-redis的简单测试

SpringSecurity提供了默认了登陆窗口
SpringSession - redis 提供了session情报的redis连携机能,

Session

问题

指APserver内信息的保存区域,使用多台AP构成的结构中,每台只保存自己的session情报的话,多台之间不能实现共享,用户的信息没法实现共享

解决方式

  • StickSession 使AP和Client之间实现1;1的构成,用户每次的访问路由到同一台server,失去了Loadbalance的意义
  • Session复制 需要额外成本
  • 外部存储
    • RDBMS 或者 KVS 的方法保存到外部存储机制中
    • HttpSession 的 API 提供了KVS的保存机制API,适合与KVS方式的保存
    • APServer和KVS的分离,容易实现扩展(AWS EC2 + ElastiCache Redis)

Redis安装以及设定

参照: Redis.

依赖注入

依赖文件;build.gradle

// Redis
compile("org.springframework.boot:spring-boot-starter-data-redis:$springBootVersion")
compile("org.springframework.session:spring-session-data-redis:$springBootVersion")

属性设置

配置追加;application.yml

Spring
   redis:
   host: 192.168.44.10
   port: 6379
   database: 0

启动测试

通过Security提供的默认登陆窗口,
输入用户名,密码,登陆成功后可以看到
信息保存在了Redis

127.0.0.1:6379> keys *
1) "spring:session:sessions:12345678-12345-45cc-9128-7bc1acaa061c2e"
2) "spring:session:sessions:expires:12345678-d011-45cc-9128-7bc1ac061c2e"
3) "spring:session:index:org.springframework.session.FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME:admin"
4) "spring:session:expirations:1551083520000"

继续,使用SpringSession 扩展 HttpSession实现,以后追加。
//TODO
待续。。。。。。

猜你喜欢

转载自blog.csdn.net/oblily/article/details/87920100