首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置SameSite属性?

如何设置SameSite属性?
EN

Stack Overflow用户
提问于 2018-06-04 01:11:39
回答 3查看 19.1K关注 0票数 6

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

代码语言:javascript
复制
response.setHeader("Set-Cookie", response.getHeader("Set-Cookie") + "; SameSite=strict");

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

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-06 00:04:38

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

代码语言:javascript
复制
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"));
}
票数 11
EN

Stack Overflow用户

发布于 2019-10-15 08:55:46

在etc/apache2/httpd.conf中

标题编辑集-Cookie^(.*)$ $1;SameSite=Strict

对我来说……

票数 1
EN

Stack Overflow用户

发布于 2020-03-26 11:29:36

新的Tomcat通过TomcatContextCustomizer支持SameSite cookies。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50668961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档