springboot跨域如何设置SameSite的实现

作者:秋风浪子 时间:2022-08-03 21:27:07 

前言

今天记录一个前段时间遇到的一个小问题的解决方法, 跨域!!!
相信跨域这个问题, 做开发的或多或少都遇到过, 而且已经有很多博主已经分享了相关的内容, 这次我用他们的方式都没有解决到, 所以记录一下.

问题

我们公司有个系统的域名跟主系统的域名不一致, 但是我们又需要把所有的系统都集成在一个框架下面, 使用的是iframe技术来实现. 使用单点登录来做所有系统的登录. 这样的设计就导致我们访问域名不同的系统的时候, 会有跨域的问题. 通常的解决方式这样, 在springboot里面设置跨域 * , 可以实现跨域访问.

springboot跨域如何设置SameSite的实现

但是, 但是, 我们使用了这个配置之后, 依然无法实现登录, 最明显的一个问题就是每次请求的sessionid都不一样, 即使是同一个页面的多个请求, sessionid也不一样.这样我们就无法通过session来保留会话.

解决方法

经过老夫不懈的Google, 最开始定位到问题的原因是因为Google浏览器的SameSite属性导致的. Chrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪。这个属性有3个值, 具体的介绍可以看这篇文章 里面讲的很详细.

我们选择的是直接关闭这个属性,设置为None, 就像这样:


response.setHeader("Set-Cookie", "SameSite=None;Secure;JSESSIONID=xxx");

注意, 上面的代码有个坑

这样设置时候, 我们期望的是一个请求后, cookie里面能够设置JSESSIONID. 然而, 并没有达到我们的预期效果
在老夫的头发快抓完的时候, 在反反复复的阅读了上面的那篇文章之后, 老夫抱着尝试的心态改了一下上面的代码, 如下:
response.setHeader("Set-Cookie", "JSESSIONID=xxx;SameSite=None;Secure");

仔细看, 仅仅是JSESSIONID的位置改变了一下. 然后就成功了, 苍天啊~ 大地啊~仅仅是一个位置啊~~~~~~~

来源:https://juejin.cn/post/6959501952568803336

标签:springboot,跨域,SameSite
0
投稿

猜你喜欢

  • SpringBoot的异常处理流程是什么样的?

    2021-07-09 17:54:40
  • 基于C#实现FTP下载文件

    2021-07-09 20:10:01
  • Java通过jersey实现客户端图片上传示例

    2022-09-17 15:44:24
  • Java面向对象程序设计:抽象类,接口用法实例分析

    2023-03-08 23:56:07
  • Android获取手机的版本号等信息的代码

    2021-09-21 06:00:26
  • Java读写文件创建文件夹多种方法示例详解

    2022-11-17 01:08:48
  • RabbitMQ延迟队列及消息延迟推送实现详解

    2023-11-15 15:31:31
  • c#操作ftp类分享

    2023-02-27 12:50:17
  • 详解Java异常处理中finally子句的运用

    2023-11-29 10:10:30
  • Android使用Websocket实现聊天室

    2023-07-07 13:01:59
  • maven多个仓库查询的优先级顺序案例讲解

    2023-08-16 02:33:23
  • Android双击事件拦截方法

    2022-07-21 19:33:30
  • Maven中的SnapShot版本和正式版本的区别

    2023-11-03 16:31:46
  • Java实现月饼的制作、下单和售卖功能

    2023-03-06 18:26:24
  • Java动态 代理和AOP应用示例

    2023-11-26 07:45:02
  • C#实现控制电脑注销,关机和重启

    2021-10-28 14:21:15
  • SpringBoot整合WebSocket实现后端向前端发送消息的实例代码

    2021-10-30 19:24:56
  • Java裁剪压缩PNG图片,透明背景色变黑的解决方案

    2023-11-25 13:21:27
  • 面试中遇到的java逃逸分析问题

    2021-12-08 11:58:28
  • Java哈希表和有序表实例代码讲解

    2023-05-28 11:29:29
  • asp之家 软件编程 m.aspxhome.com