spring - 会话 cookie 自定义路径
问题描述
我有一个 Spring Boot 应用程序,想将其部署到 Wildfly12。我想要实现的是为 JSESSIONID cookie 设置自定义路径。但毕竟,我的努力没有任何结果。
我试图在我的 application.properties 文件中使用这个属性:
server.servlet.session.cookie.path=/
当我使用嵌入式 tomcat 运行应用程序时,一切正常;但是当我将我的应用程序部署到 wildfly 时,无论该属性的值如何,它总是将 cookie 路径设置为应用程序的“上下文路径”。
我也尝试过使用这个属性:
server.servlet.context-path=/
但到目前为止还没有成功!
在standalone.xml 文件中也有这个标签:
<session-cookie http-only="true" secure="true"/>
但它似乎与 cookie 路径无关,因为它没有任何属性。
解决方案
您正在做的配置是针对 spring boot 应用程序的嵌入式服务器。
应用程序属性中存在嵌入式服务器设置(可以在此处检查# EMBEDDED SERVER CONFIGURATION部分和命名空间 server.servlet.session.cookie.*)。
要修改外部服务器上的 cookie 相关配置,您必须创建CookieSerializer
可用于自定义 cookie 配置的 bean。例如
@Bean
public CookieSerializer cookieSerializer() {
DefaultCookieSerializer serializer = new DefaultCookieSerializer();
serializer.setCookieName("JSESSIONID");
serializer.setCookiePath("/");
serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$");
return serializer;
}
您可以参考弹簧指南以获取更多信息。
推荐阅读
- docker - Alpine - Docker:返回非零代码:139
- html - 在图标旁边对齐文本或跨越 unicode 字符
- csv - 如何使用 c# 将 csv 文件转换为制表符分隔的 .txt 文件
- excel - 在 For 循环中使用 Sumif 公式
- r - 我们可以对 readlines 和 rbind 做并行处理吗
- android-emulator - 无法通过 appium-RobotFramework 连接到 Android 模拟器
- php - 当用户离开 Woocommerce 中的结帐页面时删除应用的优惠券
- marklogic - MarkLogic 是如何计算米每小时数据的?
- oracle - 子查询返回多行
- javascript - 解决最小化关键请求深度 - 页面性能