Dans Tomcat, nous pouvons le faire comme ceci:
<Context useHttpOnly="true" sessionCookiePath="/"sessionCookieDomain=".XXXX.com"/>
Je souhaite partager le cookie d'un domaine de second niveau avec Spring Boot, comment procéder?
Les paramètres du serveur intégré dans Spring Boot sont disponibles en tant que propriétés d'application ( répertoriés ici sous la section # EMBEDDED SERVER CONFIGURATION
et l'espace de noms server.servlet.session.cookie.*
).
L'équivalent de la configuration Tomcat ci-dessus devrait être:
# properties in /src/resources/application.properties
server.servlet.session.cookie.domain=.XXXX.com
server.servlet.session.cookie.http-only=true
server.servlet.session.cookie.path=/
(Ceci s'applique à Spring 1.5.x au moment d'écrire ces lignes)
Pour ajouter à la réponse de @ radrocket81, voici un exemple de code. C'est également comme cela que vous définissez les propriétés max-age et autres des cookies de démarrage Spring si vous avez activé la session Redis par @EnableRedisHttpSession , car la propriété d'application server.session ne sera pas appliquée.
@Bean
public <S extends ExpiringSession> SessionRepositoryFilter<? extends ExpiringSession> springSessionRepositoryFilter(SessionRepository<S> sessionRepository, ServletContext servletContext) {
SessionRepositoryFilter<S> sessionRepositoryFilter = new SessionRepositoryFilter<S>(sessionRepository);
sessionRepositoryFilter.setServletContext(servletContext);
CookieHttpSessionStrategy httpSessionStrategy = new CookieHttpSessionStrategy();
httpSessionStrategy.setCookieSerializer(this.cookieSerializer());
sessionRepositoryFilter.setHttpSessionStrategy(httpSessionStrategy);
return sessionRepositoryFilter;
}
private CookieSerializer cookieSerializer() {
DefaultCookieSerializer serializer = new DefaultCookieSerializer();
serializer.setCookieName("CUSTOM_SESSION_KEY");
serializer.setDomainName("domain.com");
serializer.setCookiePath("/");
serializer.setCookieMaxAge(10); //Set the cookie max age in seconds, e.g. 10 seconds
return serializer;
}
Ma solution consistait à définir un bean CookieSerializer et à fournir le modèle de domaine qui convient à ma configuration.
Comme ceci: Spring Session - Custom Cookie