相关文章:
Windows 中 安装 Redis 桌面连接工具(RedisDesktopManager)
在 IntelliJ IDEA 2018.2.5 创建 Maven 项目
Spring Boot 使用 Redis 进行 Session 共享
Spring Boot 使用 Redis 进行 Session 共享(Ajax 跨域)
前言:前面介绍了 Spring Boot 使用 Redis 进行 Session 共享,在相同域名或者相同域名不同端口时,Session 可以共享,但是域名不同时,如 1.xuxiaowei.com.cn、与 2.xuxiaowei.com.cn分别时 域名xuxiaowei.com.cn的二级域名,前面的方法,不能进行 Session 共享,本文将介绍如何进行 子域中的 Session 共享。
特别说明:从 Spring Boot Starter Parent 2.1.5.RELEASE 开始,需要 Security 支持。否则运行时错误,会出现缺少:
java.lang.ClassNotFoundException:
org.springframework.security.web.authentication.RememberMeServices
- 在包 cn.com.xuxiaowei.demo2.config 中的类 RedisSessionConfig 中添加如下代码:
将 Cookie 保存到域名 xuxiaowei.com.cn 下:/** * 在主域中储存Cookie,子域中共享Cookie */ @Bean public CookieSerializer cookieSerializer() { // 默认 Cookie 序列化 DefaultCookieSerializer defaultCookieSerializer = new DefaultCookieSerializer(); // Cookie名字,默认为 SESSION defaultCookieSerializer.setCookieName("SESSION_ID"); // 域,这允许跨子域共享cookie,默认设置是使用当前域。 defaultCookieSerializer.setDomainName("xuxiaowei.com.cn"); // Cookie的路径。 defaultCookieSerializer.setCookiePath("/"); return defaultCookieSerializer; }
- 结果如下:
两个域名的 Cookie 相同,如下:
原始的 Cookie 如下:
可以看出,设置前后,Cookie 的作用域是不同的。