启用转发标头后Spring Boot cookie域问题

时间:2017-10-17 17:09:34

标签: tomcat spring-boot cookies session-cookies

在我的Spring Boot应用程序(带有嵌入式Tomcat)中,我通过在server.use-forward-headers中将true属性设置为application.properties来启用转发标头。

由于X-Forwarded-Host在执行此操作时出现问题,已在here中进行了讨论,因此我添加了建议的code snippet以使其正常运行。这一切都运作良好,但我注意到我的cookie上的域已经改变。

具体来说,我的JSESSIONID域曾经是example.comabc.example.com,如果在子域中。添加该代码段后,我的JESSIONID域始终为.example.com

我不太确定为什么添加该代码会更改Cookie。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

事实证明,我有一个自定义的Cookie序列化程序,用于我的JSESSIONID Cookie,但这些Cookie还没有正常运行。对于我的自定义Cookie序列化程序,我从https://docs.spring.io/spring-session/docs/current/reference/html5/guides/custom-cookie.html复制了代码段。

在启用转发标头之前,DomainNamePattern未匹配,因此Cookie域为example.com。启用转发标头(特别是X-Forwarded-Host)后,该域现已匹配,从而导致自定义序列化程序生成Cookie域.example.com

为了避免我的用户可能出现奇怪的行为,或者必须使所有用户JSESSIONID Cookie无效,我选择注释掉域名模式匹配器,并坚持使用example.com作为Cookie域现在。