在春季启动中将jsessonid-cookie设置为SameSite=Strict属性



将jsessionId cookie设置为SameSite=Strict的春季启动配置是什么。

JsessionId需要添加SameSite=Strict或现有cookie,而不是新生成的cookie。是支持吗?

我使用Rfc6265CookieProcessor在春季启动应用程序中配置SameSite标志作为解决方法。

build.gradle

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-tomcat'
...
}

主类中的配置:

@Bean
public ServletWebServerFactory servletContainer() {
return new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
Rfc6265CookieProcessor rfc6265CookieProcessor = new Rfc6265CookieProcessor();
rfc6265CookieProcessor.setSameSiteCookies("Strict");
context.setCookieProcessor(rfc6265CookieProcessor);
}
};
}

使用Undertow 2.1.0.Final和更高版本,您可以这样做:

public static final String COOKIE_PATTERN = "JSESSIONID";
@Bean
public UndertowServletWebServerFactory undertowServletWebServerFactory() {
UndertowServletWebServerFactory undertow = new UndertowServletWebServerFactory();

undertow.addDeploymentInfoCustomizers(
deploymentInfo -> deploymentInfo.addInitialHandlerChainWrapper(
handler -> new SameSiteCookieHandler(handler, CookieSameSiteMode.STRICT.name(), COOKIE_PATTERN)
));

return undertow;
}

根据Spring Security中的这个公开问题,这还不受支持。

相关内容

  • 没有找到相关文章

最新更新