Description
Currently, there's no way from application.properties
to configure the Spring Session session cookie's SameSite
attribute. It would be nice to be able to do that.
For consistency with the existing server.servlet.session.cookie
properties, I suggest:
server.servlet.session.cookie.sameSite
with a default value of "Lax" (to match Spring Session 2.1's behavior defined in DefaultCookieSerializer). A value of empty string would map to null
(which results in DefaultCookieSerializer
not setting the SameSite
attribute on the cookie).
SessionAutoConfiguration would implement this behavior.
This setting would have no effect when Spring Session is not in use as no servlet containers currently expose a means by which to set the SameSite
attribute on their session cookies (support for that can be added as containers gain that ability).
Note that this is likely to be increasingly used as the default session cookie in Spring Session 2.1 has the attribute SameSite=Lax
(see spring-projects/spring-session#1005) which breaks SAML login, so anyone using SAML (such as via Spring Security SAML) is going to have to need to change this configuration:
https://groups.google.com/a/chromium.org/d/msg/security-dev/AxY6BpkkH9U/vgKbDm7rFgAJ
As a further enhancement, perhaps if Spring Security SAML is detected, server.servlet.session
can be set to null by default instead of "Lax".