spring session redis跨域共享session的总结

本文介绍了在前后端分离的架构下,如何使用Spring Session结合Redis实现跨域Session共享,详细讲述了遇到的两个主要问题及其解决方案。首先,针对前端发送每个Ajax请求导致独立SessionID的问题,通过后端配置CORS过滤器,开启Access-Control-Allow-Credentials并设置Access-Control-Allow-Origin。其次,解决不同域名间的Session不共享问题,通过修改Spring Session的cookie路径和设置domainName来实现跨域共享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近由于公司的项目需求,需要跟甲方对接,对方使用的是spring session框架实现的session共享,调试了整整一周才基本流程跑通,期间遇到了不少的坑,接下来就把遇到的坑总结下来,方便以后进行查看,也可以给大家准备使用spring session共享提供个参照,初次写博客,请多关照,闲话少说,接下来谈谈遇到的坑

 1:第一个坑就是我们项目采取的前后端分离的技术架构和部署模式,这样就不可避免的跨域了,这样跨域之后就引发了很多问题,最重要的问题就是,前端即使是同一个html中每发送一个ajax请求都是一个独立的session,sessionID不一样,这样就不能实现session共享,解决方案前后端需同时配合开启Access-Control-Allow-Credentials 具体代码如下:

          第一 后端使用cors解决跨域,并将Access-Control-Allow-Credentials 设置为true,由于我使用的spring boot框架,跨域过滤器代码如下:

import java.io.IOException;


import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;

/**
 * 
* @ClassName: CorsFilter  
* @Description: 跨域过滤器设置header跨域,并将跨域接受cookie开启
* @author * @date 2017年3月7日  
*
 */
@Component
public class CorsFilter implements Filter {

private Logger logger = Logger.get

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值