我们有两个项目在同一个域后面(在它们前面的zuul代理),两个都使用spring会话项目,会话保存在redis中。如何更改春季会话(redis)cookie名称?
这两个会话应该是不同的,但似乎他们覆盖了cookie中名为'SESSION'的每个其他ID。如何更改该名称?有没有简单的方法通过配置来实现?
我们有两个项目在同一个域后面(在它们前面的zuul代理),两个都使用spring会话项目,会话保存在redis中。如何更改春季会话(redis)cookie名称?
这两个会话应该是不同的,但似乎他们覆盖了cookie中名为'SESSION'的每个其他ID。如何更改该名称?有没有简单的方法通过配置来实现?
好的,我没有在配置中找到任何属性来改变它。我挖在春季会议期间的源代码位,最后做:
@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.setCookieName("MY_SESSION_NAME");
sessionRepositoryFilter.setHttpSessionStrategy(httpSessionStrategy);
return sessionRepositoryFilter;
}
“会话”的名字是默认的CookieHttpSessionStrategy源设置。
我发现了一篇关于此的博文,spring-session学习
本文解释了如何使用Spring XML更改会话ID名称。
类似以下内容:
<bean class="org.springframework.session.web.http.DefaultCookieSerializer">
<property name="cookieName" value="SYSTEM_SESSION_ID" />
</bean>
而且,实际上我测试了它和它的工作。