spring - zuul API网关过滤器

标签 spring microservices spring-cloud netflix-zuul

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

  1. 在 Zuul PreFilter run() 方法中,我正在验证 header 中传递的 token 。

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

    user-location-service:
      path: /userLocationService/**
      url: http://localhost:9002
    

问题是 JWT token 验证代码一次又一次运行,您能否建议一些解决方案,我可以应用调用 Userlocation 服务,以便 PreFilter 代码不会一次又一次运行?

最佳答案

您的用户定位服务已在 Zuul 中注册。因此,当您陷入无限循环时,您的过滤器将始终被执行。

这里有两种方法:

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

关于spring - zuul API网关过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43100199/

相关文章:

java - Spring Social Facebook - 发布/发布 API 详细信息

spring - 使用 SimpleJdbcTestUtils.executeSqlScript() 时 HSQLDB 触发器语句错误

java - 当 Redis 不可用时使用默认的 Spring session

angular - 通过服务将参数传递给 ngOnInit

java - Spring Cloud Stream KStream Consumer并发没有影响?

spring-cloud - 如何使用应用程序名称替换 ip :port about spring cloud eureka?

java - Spring 启动: FeignClient with SSL (p12)

java - 如何查找以前运行的作业/任务未在 Spring Batch 中运行?我尝试了一些代码但不确定

每个数据库表的微服务?

java - org.springframework.beans.factory.UnsatisfiedDependencyException : Error creating bean with name.无法让我的springboot应用程序运行