在我的Spring Boot应用程序(带有嵌入式Tomcat)中,我通过在server.use-forward-headers
中将true
属性设置为application.properties
来启用转发标头。
由于X-Forwarded-Host
在执行此操作时出现问题,已在here中进行了讨论,因此我添加了建议的code snippet以使其正常运行。这一切都运作良好,但我注意到我的cookie上的域已经改变。
具体来说,我的JSESSIONID
域曾经是example.com
或abc.example.com
,如果在子域中。添加该代码段后,我的JESSIONID
域始终为.example.com
。
我不太确定为什么添加该代码会更改Cookie。有什么想法吗?
答案 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域现在。