当我尝试从 zuul 预过滤器访问另一个 REST API(在 ZUUL 路由中注册)时,我遇到问题,该调用变得递归,即它一次又一次地运行我的预过滤器代码。我的用例如下-
在 Zuul
PreFilter
run()
方法中,我正在验证 header 中传递的 token 。验证 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/