在Tomcat中,我们可以这样做:
<Context useHttpOnly="true" sessionCookiePath="/"sessionCookieDomain=".XXXX.com"/>我想和Spring Boot共享二级域名的cookie,该怎么做?
发布于 2016-01-23 01:52:02
Spring Boot嵌入的服务器的设置可以作为应用程序属性( # EMBEDDED SERVER CONFIGURATION部分下的listed here和名称空间server.servlet.session.cookie.*)。
上面的Tomcat配置的等价物应该是:
# 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=/发布于 2018-04-17 16:21:47
(在撰写本文时,这适用于Spring 1.5.x )
为了补充@radrocket81的回复,这里有一个示例代码。这也是如何设置Spring boot cookies 的max-age和其他属性,如果您通过@EnableRedisHttpSession启用了Redis session,因为应用程序属性server.session将不会被应用。
@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;
}发布于 2017-07-07 16:33:39
我的解决方案是定义一个CookieSerializer bean,并提供适合我的设置的域模式。
像这样:Spring Session - Custom Cookie
https://stackoverflow.com/questions/34941350
复制相似问题