2

同じドメインの背後に 2 つのプロジェクト (それらの前に zuul プロキシ) があり、どちらもセッションが redis に保持された spring session プロジェクトを使用しています。

これらの 2 つのセッションは異なるはずですが、「SESSION」という名前の Cookie で互いの ID を上書きしているようです。その名前を変更するには?構成を通じてそれを行う簡単な方法はありますか?

4

5 に答える 5

3

わかりました、それを変更するためのプロパティが構成に見つかりませんでした。spring-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.setCookieName("MY_SESSION_NAME");
    sessionRepositoryFilter.setHttpSessionStrategy(httpSessionStrategy);
    return sessionRepositoryFilter;
}

「SESSION」名は、CookieHttpSessionStrategy のソースに設定されているデフォルトです。

于 2015-10-13T08:31:39.717 に答える