我在其他微服务的前面有一个Spring Cloud Gateway。网关还用作身份验证层。我的网关位于localhost:9000,而我的微服务希望将流量定向到具有localhost:8050上的谓词路径(/api/scd/secure/**
)。我想给/ ms / platform加上前缀以到达位于我的微服务中的实际其余端点(因此/ms/platform/api/scd/secure/**
)。我遇到的问题是,即使我将uri设置为localhost:8050,它也会使用网关uri作为最终目的地(因此localhost:9000/ms/platform/api/scd/secure/**
)
我已经尝试在Spring Cloud Gateway上进行大量阅读,以了解PrefixPath过滤器的工作原理,但是我阅读的所有内容都表明我的配置应该可以工作。
spring:
cloud:
gateway:
routes:
- id: scd_secure
uri: http://localhost:8500
predicates:
- Path=/api/scd/secure/**
filters:
- PrefixPath=/ms/platform
- GatewaySecurityFilter
我希望在我的GatewaySecurityFilter中,exchange.getRequest uri为localhost:8050/ms/platform/api/scd/secure/**
,但最终以localhost:9000/ms/platform/api/scd/secure/**