在Zuul过滤器中处理不同的URL模式

问题描述 投票:1回答:1

我有两种类型的URL模式,如下所示。

  1. /网关/安全/ API /用户/的getUser
  2. /网关/非安全/ API /用户/的getUser

(zuul网关应用程序的上下文根是gateway

使用zuul过滤器我正在尝试基于securenonsecure URL模式实现两种不同的逻辑。我写了一个预过滤器,似乎它甚至没有为上面的URL模式执行过滤器。我可以看到网关正在扔404。当我尝试访问没有securenonsecure的微服务时,它按预期工作。以下是我迄今为止所做的房产变更。

下游微服务的上下文根是api / user

zuul.prefix=/secure
zuul.routes.user.path=/api/user/**
zuul.routes.user.service-id=user

zuul.prefix=/nonsecure
zuul.routes.user.path=/api/user/**
zuul.routes.user.service-id=user

我已经试过给zuul.prefix了,似乎前缀设置为全局,并且不能仅适用于特定路线。我怎样才能做到这一点?任何人都可以请建议。谢谢

spring-boot microservices spring-cloud gateway netflix-zuul
1个回答
0
投票

如您所述,zuul.prefix属性会影响所有映射,并且只能定义一次。因此,删除zuul.prefix属性并为每个zuul.routes.*.path属性添加相应的前缀:

zuul.routes.user.path=/secure/api/user/**
zuul.routes.user.service-id=user

zuul.routes.user.path=/nonsecure/api/user/**
zuul.routes.user.service-id=user

请注意,根据documentation

zuul.stripPrefix仅适用于zuul.prefix中设置的前缀。它对给定路线的path中定义的前缀没有任何影响。

© www.soinside.com 2019 - 2024. All rights reserved.