2016-02-16 102 views
1

我們正在嘗試爲ZUUL編寫自定義POST路由過濾器。我們正在使用Spring Cloud Zuul。這是我們正在嘗試執行的操作 -Spring Cloud ZUUL - 自定義POST路由過濾器

在Eureka中註冊了相同服務(ServiceA)的多個實例。我們通過ZUUL在ServiceA中創建一個剩餘的API請求,並且API由任何一個在Eureka註冊的實例提供服務。 我們想知道的是爲特定請求提供服務的實例的hostip。

我們實現了一個POST過濾器,但RequestContext.getCurrentContext()。getRouteHost爲空;有沒有其他的方式來獲取hostip?

回答

3

它爲我的作品:

@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; 
    } 
} 
+0

由於它的工作原理.. –

+0

如果它幫助了你,請在答案 –

+0

我沒有投票,但它說,我需要至少15聲譽。 –