我們有兩個項目在同一個域後面(在它們前面的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>
而且,實際上我測試了它和它的工作。