该版本仍在开发中,尚未被视为稳定。最新稳定版请使用Spring Session 3.5.3spring-doc.cadn.net.cn

春季课程 - WebFlux 与自定义 Cookie

本指南介绍了如何在基于WebFlux的应用中配置Spring Session使用自定义Cookie。本指南假设你已经在项目中使用你选择的数据存储设置了Spring Session。例如,HttpSession和Redisspring-doc.cadn.net.cn

您可以在WebFlux自定义Cookie示例应用中找到完成的指南。

设置好春季会话后,你可以通过公开WebSessionIdResolver作为春季豆。春季会话使用CookieWebSessionIdResolver是默认情况下。暴露WebSessionIdResolver因为 Spring Bean 在使用以下配置时对现有配置进行了补充@EnableRedisHttpSession. 以下示例展示了如何自定义春季课程的cookie:spring-doc.cadn.net.cn

	@Bean
	public WebSessionIdResolver webSessionIdResolver() {
		CookieWebSessionIdResolver resolver = new CookieWebSessionIdResolver();
		resolver.setCookieName("JSESSIONID"); (1)
		resolver.addCookieInitializer((builder) -> builder.path("/")); (2)
		resolver.addCookieInitializer((builder) -> builder.sameSite("Strict")); (3)
		return resolver;
	}
1 我们会自定义 Cookie 的名称为JSESSIONID.
2 我们会自定义 cookie 的路径(而不是上下文根的默认路径)。/
3 我们会定制同站Cookie 指令严格.

本节介绍了如何与Webflux-自定义-cookie示例应用。spring-doc.cadn.net.cn

您可以通过获取源代码并调用以下命令来运行示例:spring-doc.cadn.net.cn

$ ./gradlew :spring-session-sample-boot-webflux-custom-cookie:bootRun
为了让样本正常工作,你必须在localhost上安装Redis 2.8+,并用默认端口(6379)运行。 或者,你也可以更新RedisConnection工厂指向 Redis 服务器。另一种选择是使用 Docker 在本地主机上运行 Redis。详见 Docker Redis 仓库中的详细说明。

你现在应该可以在localhost:8080/访问该应用了spring-doc.cadn.net.cn

现在你可以使用该申请表了。请填写以下信息的表格:spring-doc.cadn.net.cn

现在点击设置属性按钮。你现在应该能在表格中看到显示的值。spring-doc.cadn.net.cn

如果你查看应用的 Cookie,可以看到 cookie 保存为自定义名称JSESSIONID.spring-doc.cadn.net.cn