您知道任何允许为 cookie 设置自定义标志的 Java cookie 实现,例如 SameSite=strict
吗?似乎 javax.servlet.http.Cookie
有一组严格限制的可以添加的标志。
原文由 Michal_Szulc 发布,翻译遵循 CC BY-SA 4.0 许可协议
您知道任何允许为 cookie 设置自定义标志的 Java cookie 实现,例如 SameSite=strict
吗?似乎 javax.servlet.http.Cookie
有一组严格限制的可以添加的标志。
原文由 Michal_Szulc 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您不想更新所有代码,您也可以使用 Apache 或 Nginx 配置(或您正在使用的任何其他 HTTP 服务器/代理)通过一行配置来实现相同的目的
您可以将以下行添加到您的 Apache 配置中
Header always edit Set-Cookie (.*) "$1; SameSite=Lax"
这将使用 SameSite=Lax
标志更新您的所有 cookie
在此处查看更多信息: https ://blog.giantgeek.com/?p=1872
location / {
# your usual config ...
# hack, set all cookies to secure, httponly and samesite (strict or lax)
proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";
}
同样在这里,这也会用 SameSite=Lax
标志更新你所有的 cookie
在此处查看更多信息: https ://serverfault.com/questions/849888/add-samesite-to-cookies-using-nginx-as-reverse-proxy
原文由 Marty Aghajanyan 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2.7k 阅读✓ 已解决
3 回答4.2k 阅读✓ 已解决
8 回答3.8k 阅读
4 回答2.8k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
4 回答2k 阅读
我不是 JEE 专家,但我认为由于该 cookie 属性是一项有点新的发明,您不能指望它会出现在 Java EE 7 接口或实现中。
Cookie
类似乎缺少通用属性的设置器。但不是将 cookie 添加到您的HttpServletResponse
通过您可以通过简单地设置相应的 HTTP 标头字段
更新: 感谢 @mwyrzyk 指出
setHeader()
覆盖所有同名的现有标头。因此,如果您碰巧在响应中已经有其他Set-Cookie
标头,当然您会使用具有相同参数的addHeader()
代替。