有个小项目,本地测试一帆风顺,昨天发布到云服务器后就出问题了

Java端设置的Cookie,浏览器访问不到

1-2022-2-11

设置cookie代码如下

/**
* 添加Cookie
* @param hsp
* @param n cookie key
* @param v cookie value
* @param p 设置区间
* @param noJs true:禁止js读取 false:默认
* @param secure
* @param sameSite
* 1:Strict 完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。
* 2:Lax 不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外
* 3:None 将Lax变为默认设置,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送)
* @param t 有效时长(单位:s)
*/
public static void setCookieV(HttpServletResponse hsp, String n, String v, String p, boolean noJs, boolean secure, int sameSite, int t) {
ResponseCookie c = ResponseCookie.from(n, v)
.httpOnly(noJs)
.secure(secure)
// .domain("") // 域名
.path(p)
.maxAge(t)
.sameSite(sameSite == 1 ? "Strict" : (sameSite == 2 ? "Lax" : "None"))
.build();
hsp.setHeader(HttpHeaders.SET_COOKIE, c.toString());
}

入参:

Utils.setCookieV(hsp, "ID", random, "/", true, true, 3, 3 * 60 * 60);

开始一直以为是返回流的问题,或者跨域的问题,但项目所有的cookie都没有涉及到第三方,按理来说不存在跨域问题

经过坚持不懈的翻资料,终于在一篇博客找到了问题所在

果然是个常识问题,我以为 securetrue 时是在http下也传输,把 secure 的值设置成了true

securetrue-仅在https下传输  /  false:在http下也传输

最终入参 secure 值改为 false,成功

基础还需巩固,特此记录

参考文章:HostOnly Cookie和HttpOnly Cookie - 游子日月长 - 博客园 (cnblogs.com)

2-补充(2022-2-15)

上述方法在ie和Firefox下可行,Chorme80及以上版本无效

参考链接:(23条消息) 关于 chrome 80 后出现的 SameSite 问题_baidu_33569474的博客-CSDN博客

3-补充:问题解决(2022-2-16)

在大佬的指点下,我发现上述方法舍近求远了,直接用Response自带的addCookie方法就行,设置表头应该是兼容性有问题

/**
* 添加Cookie
* @param hsp
* @param name
* @param value
* @param maxAge
* @param secure
*/
public static void setCookie(HttpServletResponse hsp, String name, String value, String path, int maxAge, boolean secure) {
Cookie c = new Cookie(name, value);
c.setPath(path);
c.setSecure(secure);
c.setMaxAge(maxAge);
hsp.addCookie(c);
}

cookie设置失败的更多相关文章

  1. SoapUI之cookie设置

    一.测试背景: 1)接口测试需要完成注册-->登录-->充值,使用soapui构建好测试用例.设置断言后,运行结果如下: 2)recharge接口运行失败,继续查看该接口具体发送的请求及返 ...

  2. Microsoft Visual C++ 2015 Redistributable(x64) - 14.0.2306 设置失败

    想要在Windows 2008 R2 中 安装PHP, 需要安装 Microsoft Visual C++ 2015 Redistributable(x64) ,结果提供设置失败. 先中找到以下文字, ...

  3. 浏览器因cookie设置HttpOnly标志引起的安全问题

    1.简介 如果cookie设置了HttpOnly标志,可以在发生XSS时避免JavaScript读取cookie,这也是HttpOnly被引入的 原因.但这种方式能防住攻击者吗?HttpOnly标志可 ...

  4. SVG image xlink:href 设置失败

    公司比较频繁的业务需求,需要在地图上面,标注地区的信息,考虑到兼容性问题,在实际开发中是通过raphael.js绘制地图信息,进行相关交互 产品部门同事辛苦的画SVG地图,可配置地图块与实际地区cod ...

  5. cookie设置

    问题: cookie设置好后,谷歌浏览器下-->只有本页面有值,但是在其它浏览器下正常. $.cookie("userName",$("#loginName&quo ...

  6. 安装oracle11g client 【INS-30131】执行安装程序验证所需的初始设置失败的解决方法

    今天在服务器(操作系统windows server 2008R2)上安装Oracle11g 客户端,弹出“执行安装程序验证所需的初始设置失败”,如上图.网上找了一些方法,简单整理如下,仅供参考. 问题 ...

  7. 安装oracle11g INS-30131执行安装程序验证所需的初始设置失败的解决方法

    安装oracle11g [INS-30131] 执行安装程序验证所需的初始设置失败. 解决方法 第一步:控制面板>所有控制面板项>管理工具>服务>SERVER 启动 TCP/I ...

  8. [INS-30131]执行安装程序验证所需的初始设置失败(原因:无法访问临时位置)

    [INS-30131]执行安装程序验证所需的初始设置失败(原因:无法访问临时位置) 学习了:https://blog.csdn.net/killvoon/article/details/5182192 ...

  9. PHP如何清除COOKIE?PHP无法删除COOKIE?设置COOKIE有效期、COOKIE过期

    cookie和session的区别? http://www.cnblogs.com/phphuaibei/archive/2011/11/15/2250082.html PHP如何清除COOKIE?P ...

  10. oracle安装报错[INS-30131]执行安装程序验证所需的初始设置失败(无法访问临时位置)解决方法!

    最近在电脑上安装oracle12c,安装时,在执行检查环境步骤时候报错: [INS-30131]执行安装程序验证所需的初始设置失败(无法访问临时位置) 最后在网上搜索解决方法,特记录下,以防以后再用到 ...

随机推荐

  1. 9.MongoDB系列之创建副本集(二)

    1. 如何设计副本集 大多数:选取主节点时需要由大多数决定,主节点只有在得到大多数支持时才能继续作为主节点,写操作被复制到大多数成员时就是安全的写操作.这里的大多数定义为"副本集中一半以上的 ...

  2. 创建第一个springboot项目、用springboot实现页面跳转、@Controller和@RestController的区别

    文章目录 一.第一个spring boot项目 二.spring boot跳转到指定页面 三.怎样将后台的信息传递到前台 四. @Controller和@RestController的区别? 一.第一 ...

  3. 一天十道Java面试题----第三天(对线程安全的理解------>线程池中阻塞队列的作用)

    这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 21.对线程安全的理解 22.Thread和Runnable的区别 23.说说你对守护线程的理解 24.ThreadLoc ...

  4. ESP32 IDF 获取天气信息

    一.注册天气获取账号 我使用的知心天气,没有获取天气账号的小伙伴可以去注册一下,知心天气官网:https://www.seniverse.com/ 取得天气获取的API后,可以直接在浏览器中访问测试一 ...

  5. 【神经网络】softmax回归

    前言 softmax回归为一种分类模型. 基本原理 由于softmax回归也是一种线性叠加算法,且需要输出离散值. 很自然地想到,可以取值最大的输出为置信输出.更进一步想到,如果有三个人A.B.C分别 ...

  6. curl 下载地址中有特殊字符解决方案

    curl 下载地址中有特殊字符解决方案 情况 使用 curl 下载 地址中带有 特殊字符的时候 比如下面这个地址.实际访问地址不正确,参数丢失问题 curl -o kspf.jpeg https:// ...

  7. Day1:Markdown文本基础操作

    Markdown学习 标题 一级标题 输入:#+空格+标题名字 :快捷键(Ctrl+1~6) 二级标题 输入:##+空格+标题名字 为二级标题 依次加#(最多六级标题) 三级标题 四级标题 字体 He ...

  8. 洛谷P5309 Ynoi 2011 初始化 题解

    题面. 我也想过根号分治,但是题目刷得少,数组不敢开,所以还是看题解做的. 这道题目要用到根号分治的思想,可以看看这道题目和我的题解. 题目要求处理一个数组a,支持如下操作. 对一个整数x,对数组长度 ...

  9. Spring Cloud Loadbalancer

    Spring Cloud Loadbalancer---客户端负载均衡器 springcloud 2020.0.1 版本之后 删除了eureka中的ribbon,替代ribbon的是spring cl ...

  10. 2022春每日一题:Day 25

    题目:青蛙的约会 读完题,显然可以的到下同余方程:x+mk≡y+nk (mod L) 移项变成 (m-n)k+aL=y-x 只有k,L是未知的,而这题要求非负整数k的最小值,显然拓展欧几里得算法. 然 ...