spring - 如何更改Spring Session(Redis)Cookie名称?

原文 标签 spring redis spring-session

我们在同一个域的后面有两个项目(在它们前面的zuul代理),都使用spring session 项目, session 保存在redis中。

这两个 session 应该是不同的,但似乎它们正在覆盖名为“SESSION”的cookie中的其他ID。如何更改名字?有没有简单的方法可以通过配置来做到这一点?

最佳答案

好的,我没有在配置中找到任何属性来更改它。我深入研究了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的源中的默认设置。

关于spring - 如何更改Spring Session(Redis)Cookie名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33095345/

相关文章:

java - 替换位置 SESSION_MANAGEMENT_FILTER 的默认过滤器

java - 在删除处理中处理临时实体。实体不会被删除 [解决]

python - Redis 哈希函数和数据分区

java - 在多个服务器上使用 Spring Security 和 Spring Redis Session

servlets - 如何使 jcaptcha 与 Spring Session 一起使用?

java - 为什么 spring-social 的 ConnectController 使用 POST 启动 OAuth 2 "dance"?

java - 连接本地容器docker

运行慢命令时Redis不会阻塞

ruby-on-rails - Rails不使用Heroku Redis在后台发送电子邮件

spring - 在Spring Session上从Redis反序列化Oauth2 session 时发生异常