Spring Cloud ZUUL - 自定义POST路由过滤器

时间:2016-02-16 12:28:00

标签: netflix-zuul

我们正在尝试为ZUUL编写自定义POST路由过滤器。我们正在使用Spring Cloud Zuul。这就是我们想要做的事情 -

在Eureka注册了多个相同服务(ServiceA)的实例。我们通过ZUUL在ServiceA中创建一个rest API请求,并且由在Eureka注册的任何一个实例提供API。 我们想知道的是实例的hostip为特定请求提供服务。

我们实现了一个POST过滤器,但 RequestContext.getCurrentContext()。getRouteHost 为空;有没有其他方法来获得hostip ??

1 个答案:

答案 0 :(得分:4)

它对我有用:

@Component
public class PostFilter extends ZuulFilter {

    @Override
    public String filterType() {
        return "post";
    }

    @Override
    public int filterOrder() {
        return 1;
    }

    @Override
    public boolean shouldFilter() {
        return true;
    }

    @Override
    public Object run() {
        RequestContext ctx = RequestContext.getCurrentContext();
        ctx.getResponseBody(); 
        ((IResponse) ctx.get("ribbonResponse")).getRequestedURI();
        return null;
    }
}