会话管理不适用于Spring Boot和Zuul代理

时间:2018-07-28 02:38:51

标签: spring-boot netflix-zuul spring-session

我有连接到具有会话的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;
}
}

0 个答案:

没有答案