【问题标题】:Spring-Cloud "Pre" ZUUL FilterSpring-Cloud “Pre” ZUUL 过滤器
【发布时间】:2016-07-11 03:30:47
【问题描述】:
我们有一个 ZUUL“Pre”过滤器,它检查某些条件并在调用特定 API (/abc) 时自行返回默认响应。当条件失败时,我们会从 API 返回响应。
API 在注册到 Eureka 的服务中可用。
问题:默认响应是返回给客户端但请求也发送给服务,基本上API /abc 也被调用,我们不希望API被调用.我们应该怎么做呢。
如果您需要任何详细信息或代码 sn-p,请告诉我。谢谢。
【问题讨论】:
标签:
spring-cloud
netflix-zuul
【解决方案1】:
您可以尝试在当前上下文中设置setSendZuulResponse(false)。这不应该将请求路由到 api。您也可以从上下文中removeRouteHost(),这将达到相同的效果。
【解决方案2】:
在自定义 ZuulFilter 的 run() 方法中,您可以放置以下语句以避免进一步处理请求并立即返回错误 JSON:
this.setFailedRequest("自定义zuul过滤器有问题。", 401);