我有连接到具有会话的Spring Boot服务的zuul代理。 Zuul是否适合这种情况?
现在,在同一浏览器中的每个请求上,链接的服务都在刷新页面时创建新会话。
我发现很少有链接可以通过过滤器注入会话ID,但不适用于Spring boot 2,Zuul 2,并尝试使用Spring session 2.0。,4。
代码将此添加到了过滤器
@Component
public class SessionSavingZuulPreFilter extends ZuulFilter {
@Override
public Object run() {
RequestContext context = RequestContext.getCurrentContext();
HttpServletRequest request = context.getRequest();
List<String> cookies =
Collections.list(request.getHeaders("cookie"));
HttpSession session = request.getSession(true);
if (session != null && cookies.stream().noneMatch(c ->
c.startsWith("SESSION="))) {
context.addZuulRequestHeader("cookie", "SESSION=" + session.getId());
}
if(session!=null)
log.info("ZuulPreFilter session proxy: {}", session.getId());
return null;
}
}