我有两种类型的URL模式,如下所示。
(zuul网关应用程序的上下文根是gateway
)
使用zuul过滤器我正在尝试基于secure
和nonsecure
URL模式实现两种不同的逻辑。我写了一个预过滤器,似乎它甚至没有为上面的URL模式执行过滤器。我可以看到网关正在扔404
。当我尝试访问没有secure
或nonsecure
的微服务时,它按预期工作。以下是我迄今为止所做的房产变更。
下游微服务的上下文根是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
了,似乎前缀设置为全局,并且不能仅适用于特定路线。我怎样才能做到这一点?任何人都可以请建议。谢谢
如您所述,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
中定义的前缀没有任何影响。