cookie设置失败
有个小项目,本地测试一帆风顺,昨天发布到云服务器后就出问题了
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都没有涉及到第三方,按理来说不存在跨域问题
经过坚持不懈的翻资料,终于在一篇博客找到了问题所在
果然是个常识问题,我以为 secure 为 true 时是在http下也传输,把 secure 的值设置成了true
secure:true-仅在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设置失败的更多相关文章
- SoapUI之cookie设置
一.测试背景: 1)接口测试需要完成注册-->登录-->充值,使用soapui构建好测试用例.设置断言后,运行结果如下: 2)recharge接口运行失败,继续查看该接口具体发送的请求及返 ...
- Microsoft Visual C++ 2015 Redistributable(x64) - 14.0.2306 设置失败
想要在Windows 2008 R2 中 安装PHP, 需要安装 Microsoft Visual C++ 2015 Redistributable(x64) ,结果提供设置失败. 先中找到以下文字, ...
- 浏览器因cookie设置HttpOnly标志引起的安全问题
1.简介 如果cookie设置了HttpOnly标志,可以在发生XSS时避免JavaScript读取cookie,这也是HttpOnly被引入的 原因.但这种方式能防住攻击者吗?HttpOnly标志可 ...
- SVG image xlink:href 设置失败
公司比较频繁的业务需求,需要在地图上面,标注地区的信息,考虑到兼容性问题,在实际开发中是通过raphael.js绘制地图信息,进行相关交互 产品部门同事辛苦的画SVG地图,可配置地图块与实际地区cod ...
- cookie设置
问题: cookie设置好后,谷歌浏览器下-->只有本页面有值,但是在其它浏览器下正常. $.cookie("userName",$("#loginName&quo ...
- 安装oracle11g client 【INS-30131】执行安装程序验证所需的初始设置失败的解决方法
今天在服务器(操作系统windows server 2008R2)上安装Oracle11g 客户端,弹出“执行安装程序验证所需的初始设置失败”,如上图.网上找了一些方法,简单整理如下,仅供参考. 问题 ...
- 安装oracle11g INS-30131执行安装程序验证所需的初始设置失败的解决方法
安装oracle11g [INS-30131] 执行安装程序验证所需的初始设置失败. 解决方法 第一步:控制面板>所有控制面板项>管理工具>服务>SERVER 启动 TCP/I ...
- [INS-30131]执行安装程序验证所需的初始设置失败(原因:无法访问临时位置)
[INS-30131]执行安装程序验证所需的初始设置失败(原因:无法访问临时位置) 学习了:https://blog.csdn.net/killvoon/article/details/5182192 ...
- PHP如何清除COOKIE?PHP无法删除COOKIE?设置COOKIE有效期、COOKIE过期
cookie和session的区别? http://www.cnblogs.com/phphuaibei/archive/2011/11/15/2250082.html PHP如何清除COOKIE?P ...
- oracle安装报错[INS-30131]执行安装程序验证所需的初始设置失败(无法访问临时位置)解决方法!
最近在电脑上安装oracle12c,安装时,在执行检查环境步骤时候报错: [INS-30131]执行安装程序验证所需的初始设置失败(无法访问临时位置) 最后在网上搜索解决方法,特记录下,以防以后再用到 ...
随机推荐
- 9.MongoDB系列之创建副本集(二)
1. 如何设计副本集 大多数:选取主节点时需要由大多数决定,主节点只有在得到大多数支持时才能继续作为主节点,写操作被复制到大多数成员时就是安全的写操作.这里的大多数定义为"副本集中一半以上的 ...
- 第三方代开的微信小程序更换管理员
(1) 由于第三方代开小程序默认管理员是法人.首先使用法人微信搜索"小程序助手"小程序 (2)点击进入"小程序助手",即可看到自己企业名下未更换管理员的小程序 ...
- vue使用elementUI组件提交表单(带图片)到node后台
1.方法一(图片与表单分开,请求2次) 1.1 前台代码 // elementUI表单 <el-form ref="form" class="forms" ...
- Fibonacci数列 与 杨辉三角
Fibonacci数列:除第一个与第二个数之外,其余数均由前两个数相加得到: 1, 1, 2, 3, 5, 8, 13, 21, 34, ... 通过生成器,程序如下: def fib(max): m ...
- onps栈移植说明(3)——添加网卡
4. 添加网卡 移植的最后一步就是编写网卡驱动然后将网卡添加到协议栈.网卡驱动其本质上完成的是数据链路层的工作,在整个通讯链路上处于通讯枢纽位置,通讯报文的发送和接收均由其实际完成.针对网卡部分的移植 ...
- 【NGINX】浅尝
Introduction Nginx is a web server that can also be used as a reverse proxy, load balancer, mail pro ...
- ANSYS安装教程
ANSYS 16.0 WIN10 64位安装步骤:1.使用"百度网盘客户端"下载ANSYS 16.0软件安装包到电脑磁盘里全英文名称文件夹内,安装前先断开网络,然后找到ANSYS. ...
- ENS框架下一次控制灯的调试记录
正常流程 登录小站,点击管理--磁盘,在硬盘下创建分区并挂载 安全下电,拔掉硬盘和TEC,再上电 硬件端 drv_fault_check_init 初始化 并绑定硬件回调 drv_fault_chec ...
- Kubernetes安装GitLab
个人名片: 对人间的热爱与歌颂,可抵岁月冗长 Github:念舒_C.ying CSDN主页️:念舒_C.ying 个人博客 :念舒_C.ying Kubernetes安装GitLab Step 1 ...
- TKE 超级节点,Serverless 落地的最佳形态
陈冰心,腾讯云产品经理,负责超级节点迭代与客户拓展,专注于 TKE Serverless 产品演进. 背景 让人又爱又恨的 Serverless Serverless 炙手可热,被称为云原生未来发展的 ...