zuul API网关过滤器

时间:2017-03-29 17:24:47

标签: spring microservices spring-cloud netflix-zuul

当我尝试从zuul预过滤器访问另一个REST API(在ZUUL路由中注册)时,我遇到问题,该呼叫变得递归,即它一次又一次地运行我的预过滤器代码。我的用例如下 -

  1. 在Zuul PreFilter run()方法中,我正在验证标头中传递的令牌。

  2. 验证令牌后,我正在调用一个休息服务(用户位置服务)来获取用户详细信息。我的用户位置服务本身在ZUUL中注册如下:

    user-location-service:
      path: /userLocationService/**
      url: http://localhost:9002
    
  3. 问题是JWT令牌验证码一次又一次地运行,你能否建议我可以应用调用Userlocation服务的一些解决方案,以便PreFilter代码不会一次又一次地运行?

2 个答案:

答案 0 :(得分:2)

您的用户位置服务已在Zuul注册。所以,当你在无限循环中发出警告时,你的过滤器一直都会被执行。

这里有两种方法:

  • 不要再次传递到网关并直接呼叫用户位置服务
  • 或者,在ZUll身份验证过滤器中创建过滤规则,不考虑用户位置服务。您可以使用URL路径上下文来排除要执行的路由

答案 1 :(得分:1)

你需要允许敏感的头。

     zuul:
        routes:
            resource:
                path: /resource/**
                url: http://localhost:8002/
                sensitiveHeaders: Cookie,Set-Cookie