gpt4 book ai didi

带有 Redis 的 Spring HttpSession 不保存 SESSION cookie 值

转载 作者:可可西里 更新时间:2023-11-01 11:30:35 25 4
gpt4 key购买 nike

我们正在使用 Spring Cloud 构建一个基于微服务的系统,我们使用 Zuul 作为边缘服务器和一些后端微服务。在其中一个后端服务中,我们使用 Redis 来管理 HttpSession 并存储一些与用户相关的对象。

直接访问微服务时一切正常,但通过 Zuul 访问时出现问题,因为支持微服务总是获得一个新的 HttpSession ID。我尝试使用 JSESSIONIDSESSION 将 cookie 转发给使用 ZuulFilter 的微服务,但微服务最终没有使用 cookie 值来创建spring:Redis 中的 session 。

谁能帮助确定如何让 Spring Session 使用 Cookie 值,而不是 HttpSession.ID

我们正在使用:

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>

最佳答案

我试过类似的东西。你可以在这里看看:https://github.com/khauser/microservices4vaadin

需要对 DefaultCookieSerializer 进行更改:

@Bean
public HttpSessionStrategy httpSessionStrategy() {
CookieHttpSessionStrategy cookieHttpSessionStrategy = new CookieHttpSessionStrategy();
DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();
cookieSerializer.setCookieName("JSESSIONID");
cookieSerializer.setCookiePath("/");
cookieSerializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$");
cookieHttpSessionStrategy.setCookieSerializer(cookieSerializer);
return cookieHttpSessionStrategy;
}

关于带有 Redis 的 Spring HttpSession 不保存 SESSION cookie 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40679132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com