如何设置SameSite属性?

我在Cookie中设置SameSite属性时遇到问题。我想设置此属性,但既不提供javax.servlet.http.Cookie也不java.net.HttpCookie提供处理它的方法。因此,我有一个想法来创建一个响应javax.servlet.Filter,以捕获“

Set-Cookie”标头并添加“ SameSite = Strict”属性。

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

它可以正常工作,但是当我在一个响应中有多个“ Set-

Cookie”标头时出现问题。javax.servlet.http.HttpServletResponse并未提供删除或覆盖多个同名牧师的方法(在它们上面进行迭代并使用setHeader()不起作用,因为它总是设置最后一个牧师)。您是否知道如何将SameSite属性设置为cookie或如何在响应过滤器中覆盖标头?

提前致谢。

回答:

事实证明,使用setHeader()method删除所有具有相同名称的先前标头,因此我只创建了简单的for循环doFilter()方法。它将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"));

}

以上是 如何设置SameSite属性? 的全部内容, 来源链接: utcz.com/qa/436480.html

回到顶部