Zuul在从Angular发出异步请求时删除了几个请求的添加标头

时间:2018-08-17 17:39:27

标签: netflix-zuul spring-cloud-netflix

我有Zuul网关作为Angular应用程序和我们的微服务之间的代理。我创建了一个zuul过滤器,为每个请求添加几个标头。

@Component
public class RoutesAuthenticationFilter extends ZuulFilter {
    @Override
    public String filterType() {
        return "route";
    }
    @Override
    public int filterOrder() {
        return 0;
    }
    @Override
    public boolean shouldFilter() {
        return true;
    }
    @Override
    public Object run() {
         ctx = RequestContext.getCurrentContext();              
        ctx.addZuulRequestHeader("principal", principal);
        ctx.addZuulRequestHeader("customerheader", String.valueOf("testheader"));

return null;
}

这已满足我对邮递员的所有要求。

我开始发现它没有为Angular应用程序通过网关向服务发出的请求添加/删除这些标头。

当我在添加请求后查看请求中的标头的日志时,我看到请求包含所有请求都包含的标头

Headers from the requet after adding them all: { principal=john123, x-forwarded-host=localhost:8080, x-forwarded-proto=http, x-forwarded-prefix=/application-management, x-forwarded-port=8080, customerheader=testheader, x-forwarded-for=0:0:0:0:0:0:0:1}

但是当我在服务中打印它们时,很少有请求会丢失它们

2018-08-17 11:23:47.709  INFO [application-management,56a2962a54770966,56a2962a54770966,false] 10952 --- [nio-9090-exec-9] c.f.c.v.d.c.i.RequestInterceptor         : Entered request interceptor
customer header from request: testheader
principal from req: john123
2018-08-17 11:23:47.713  INFO [application-management,058aad714328a61f,058aad714328a61f,false] 10952 --- [nio-9090-exec-2] c.f.c.v.d.c.i.RequestInterceptor         : Entered request interceptor
customer header from request: null
principal from req: null

在上面的输出中,一个请求缺少标头,而一个请求存在标头。

这两个请求是从Angular应用异步发出的。

如果我两个接一个地打电话,我看不到这个问题,这意味着如果我打一个电话并等待响应并发出下一个,那么就不会丢失标题

0 个答案:

没有答案