2015-10-13 87 views
0

我們有兩個項目在同一個域後面(在它們前面的zuul代理),兩個都使用spring會話項目,會話保存在redis中。如何更改春季會話(redis)cookie名稱?

這兩個會話應該是不同的,但似乎他們覆蓋了cookie中名爲'SESSION'的每個其他ID。如何更改該名稱?有沒有簡單的方法通過配置來實現?

回答

2

好的,我沒有在配置中找到任何屬性來改變它。我挖在春季會議期間的源代碼位,最後做:

@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源設置。

0

我發現了一篇關於此的博文,spring-session學習
本文解釋瞭如何使用Spring XML更改會話ID名稱。

類似以下內容:

<bean class="org.springframework.session.web.http.DefaultCookieSerializer"> 
     <property name="cookieName" value="SYSTEM_SESSION_ID" /> 
</bean> 

而且,實際上我測試了它和它的工作。