当前位置: 首页 > 知识库问答 >
问题:

Zuul API网关过滤器

白烨煜
2023-03-14

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

>

  • 在ZuulPreFilterrun()方法中,我正在验证头中传递的令牌。

    在验证令牌之后,我调用一个rest服务(用户位置服务)来获取用户详细信息。我的用户位置服务本身已在ZUUL注册,如下所示:

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

    问题是JWT令牌验证代码正在一次又一次地运行,您能否建议一些解决方案,我可以在其中应用call Userlocation服务,以便预过滤器代码不会一次又一次地运行?

  • 共有2个答案

    朱兴学
    2023-03-14

    您需要允许敏感的标题。

         zuul:
            routes:
                resource:
                    path: /resource/**
                    url: http://localhost:8002/
                    sensitiveHeaders: Cookie,Set-Cookie
    
    桓喜
    2023-03-14

    您的用户定位服务已在Zuul注册。所以,当你在无限循环中得到考克斯时,你的过滤器总是会被执行。

    这里有两种方法

    • 不要再次传递到网关并直接调用用户定位服务
    • 或者,在ZUll身份验证过滤器中创建一个过滤器规则,以不考虑用户位置服务。您可以使用URL路径上下文来排除要执行的此路由
     类似资料:
    • 我正在尝试将JHipster从使用Zuul迁移到Spring云网关。JHipster使用Eureka来查找路由,我相信我已经正确配置了Spring Cloud Gateway来查找路由并向它们传播访问令牌。下面是我的配置: 我创建了一个pull请求,以显示集成Spring Cloud Gateway后发生了什么变化。 https://github.com/mraible/jhipster-reac

    • TLS客户端身份认证 filter.network.ClientSSLAuth HTTP连接管理 filter.network.HttpConnectionManager filter.network.HttpConnectionManager.Tracing filter.network.HttpConnectionManager.Tracing.OperationName (Enum) fil

    • TLS客户端身份认证 Echo HTTP连接管理 跟踪 过滤器 Mongo代理 故障配置 速率限制 Redis代理 连接池配置 TCP代理 路由配置 路由 返回 上一级

    • 除了配置指南中足够大的HTTP连接管理器之外,Envoy还拥有内置的网络过滤器。 TLS客户端身份认证 统计 REST API Echo Mongo代理 故障注入 统计 运行时 访问日志格式 速率限制 统计 运行时 Redis代理 统计 分配统计 按命令统计 运行时 TCP代理 统计

    • 我正在使用spring云网关作为边缘服务器。这就是流程 问题是,响应有响应是得到正确的200代码,注入的头是在响应上出现,但数据是不可用的响应。