这一节介绍, 在认证服务器上使用 spring session.
由于认证服务器肯定要是一个高可用状态, 所以一定是一个集群, 这就需要做 session 共享, 最简单的实现就是使用 spring session.
Spring Session 官方文档 :https://docs.spring.io/spring-session/docs/2.1.9.RELEASE/reference/html5/
Spring session 有 Redis 实现, 有 jdbc 实现, 用法差不多, 这里使用 Redis
可以看到, 配置一个注解, 然后配置好 Redis, 即可使用 spring session with Redis.
开始使用
1, 引入 maven 依赖
- <!-- redis -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-Redis</artifactId>
- </dependency>
- <!--springboot2.X 默认使用 lettuce 连接池, 需要引入 commons-pool2-->
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-pool2</artifactId>
- </dependency>
- <!--spring session redis-->
- <dependency>
- <groupId>org.springframework.session</groupId>
- <artifactId>spring-session-data-Redis</artifactId>
- </dependency>
2, 配好 Redis
3, 写注解, 启用 spring session
配置 session 失效时间: 一个月
重启订单, 认证, 网关, 客户端应用 admin, 四个服务器, 在客户端应用 admin 上做登录
登录成功后, 重启认证服务器, 再刷新客户端应用的页面, 还是处于登录状态, 说明认证服务器的 session 已经持久化了
Redis:
如果使用 jdbc 的实现, 那就照着官方文档做吧!
GitHub 代码: https://github.com/lhy1234/springcloud-security/tree/chapt-5-4-springsession 如果帮助到了你, 给个小星星吧
来源: http://www.bubuko.com/infodetail-3367424.html