Spring Boot 使用 Redis 进行 Session 共享(子域使用 Cookie 共享 Session)

相关文章:

CentOS 1810 安装 Redis 5.0.3

Windows 中 安装 Redis 解压版

Windows 中 安装 Redis 可执行程序

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


  1. 在包 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;
        }
  2. 结果如下:



    两个域名的 Cookie 相同,如下:


    原始的 Cookie 如下:


    可以看出,设置前后,Cookie 的作用域是不同的。
  • 1
    点赞
  • 2
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值