最新稳定版请使用Spring Session 3.5.3spring-doc.cadn.net.cn

春季课程 - WebFlux 与自定义 Cookie

本指南介绍了如何在基于WebFlux的应用中配置Spring Session使用自定义cookie。 本指南假设你已经用你选定的数据存储在项目中设置了Spring Session。比如,HttpSession with 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 在 localhost 上运行 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