gpt4 book ai didi

java - 如何设置 SameSite 属性?

转载 作者:可可西里 更新时间:2023-11-01 16:27:40 55 4
gpt4 key购买 nike

我在设置 Cookie 中的 SameSite 属性时遇到问题。我想设置这个属性,但是 javax.servlet.http.Cookiejava.net.HttpCookie 都没有提供处理它的方法。因此,我想创建一个响应 javax.servlet.Filter 来捕获“Set-Cookie” header 并添加“SameSite=Strict”属性。

response.setHeader("Set-Cookie", response.getHeader("Set-Cookie") + "; SameSite=strict");

它工作正常,但当我在一个响应中有多个“Set-Cookie” header 时出现问题。 javax.servlet.http.HttpServletResponse 没有提供删除或覆盖多个同名 heder 的方法(遍历它们并使用 setHeader() 不起作用因为它总是设置最后一个)。您知道如何将 SameSite 属性设置为 cookie 或如何覆盖响应过滤器中的 header 吗?

提前致谢。

最佳答案

事实证明,使用 setHeader() 方法可以删除所有以前的同名 header ,因此我只需在 doFilter() 方法中创建简单的 for 循环。它将 SameSite=Strict 属性添加到每个设置的 cookie。

boolean firstHeader = true;
for (String header : cookiesHeaders) {
if (firstHeader) {
httpResponse.setHeader("Set-Cookie",
String.format("%s; %s", header, "SameSite=Strict"));
firstHeader = false;
continue;
}
httpResponse.addHeader("Set-Cookie",
String.format("%s; %s", header, "SameSite=Strict"));
}

关于java - 如何设置 SameSite 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50668961/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com