shiro从1.4.0升级 到 1.6.0 Jquery upload 上传附件 不带 cookie
本人用的是谷歌 浏览器,shiro 版本是 1.4.0 时,upload 上传附件是没有问题,但升到 1.6.0 时,上传附件 rquest head 就没带 cookie.
查了许多 关于 ”jquery upload 上传附件 报 302 问题“ 。大多数给的答案 是 在 上传附件时 在参数中 把 cookie 添加到 参数中。后台 再取出来。这样做很麻烦。
最后 对比了 1.4.0 和1.6.0 SimpleCookie 类的 实列化方法
public SimleCookie(){
this.maxAge=-1;
this.version=-1
this.httpOnly = true;
this.sameSite = SameSiteOptions.LAX; // 1.4.0 没有这个
}`
``
最后通过在 new SimleCookie().setSameSite(null);
解决了问题。
查询 sameSite 属性
Strict最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当前网页的 URL 与请求目标一致,才会带上 Cookie。
Lax规则稍稍放宽,大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外。
Chrome 计划将Lax变为默认设置。这时,网站可以选择显式关闭SameSite属性,将其设为None。不过,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。