首页 > 解决方案 > 如何在春季 5 中为所有 cookie 设置 SameSite:Strict

问题描述

有谁可以告诉我如何将 SameSite:Strict 添加到 spring 5.1 中创建的所有 cookie 中?我知道在春季 4 中,不支持此属性。但是从 Spring 5.1 开始,它可以在这里声明!

但我不知道如何将其应用于我的项目?我应该把它放在哪里?请帮我!谢谢!

标签: springcookies

解决方案


我无法使用 Spring 将 SameSite 属性添加到我的项目中,因为 Object javax.servlet.http.Cookie 不支持此属性。但我可以通过将以下行添加到 conf/context.xml 来自定义 Apache tomcat(版本 9.0.11)中的 cookie 标头:

<Context allowCasualMultipartParsing="true">
    ...
    <CookieProcessor className="org.apache.tomcat.custom.coyote.TomcatCoyoteCustomer"/>
</Context>

然后使用扩展 Rfc6265CookieProcessor 类的 TomcatCoyoteCustomer 类创建一个项目“CustomCookieProcessor”,覆盖方法 generateHeader 并将“SameSite:Strict”附加到 cookie 标头。最后,我将“CustomCookieProcessor”项目的 jar 文件复制到 Tomcat 的文件夹 lib 中。您可以在此处阅读有关 Apache Tomcat 的 CookieProcessor 的更多详细信息 !


推荐阅读