Java Spring云网关第二条路径不工作
我有一个应用程序,我想把我的身份验证服务器和基本api隐藏在网关后面。创建到一个或另一个的路由工作得很好,但是如果我尝试创建两个路由,第二个路由不工作,我得到错误404。无论哪条路线是第一条路线,哪条路线是第二条路线,都会看到这种行为。在Java中将其重写为Bean具有相同的效果 以下是我的实际配置:Java Spring云网关第二条路径不工作,java,spring,spring-boot,spring-cloud,spring-cloud-gateway,Java,Spring,Spring Boot,Spring Cloud,Spring Cloud Gateway,我有一个应用程序,我想把我的身份验证服务器和基本api隐藏在网关后面。创建到一个或另一个的路由工作得很好,但是如果我尝试创建两个路由,第二个路由不工作,我得到错误404。无论哪条路线是第一条路线,哪条路线是第二条路线,都会看到这种行为。在Java中将其重写为Bean具有相同的效果 以下是我的实际配置: spring: application: name: gateway-service cloud: gateway: routes: # Au
spring:
application:
name: gateway-service
cloud:
gateway:
routes:
# Authentication server
- id: auth-server
uri: lb://auth-server
predicates:
- Path=/**
filters:
- RewritePath=/auth(?<segment>.*), /$\{segment}
# Base API
- id: base-api
uri: lb://sharedtravel-api
predicates:
- Path=/**
filters:
- RewritePath=/api(?<segment>.*), /$\{segment}
spring:
应用程序:
名称:网关服务
云:
网关:
路线:
#身份验证服务器
-id:身份验证服务器
uri:lb://auth服务器
谓词:
-路径=/**
过滤器:
-重写路径=/auth(?.*),/$\{segment}
#基本API
-id:基本api
uri:lb://SharedTravelAPI
谓词:
-路径=/**
过滤器:
-重写路径=/api(?.*),/$\{segment}
这两个谓词是相同的。第二个永远不会匹配。你必须区分它们。通过路径、主机、头或其他方式,您可以在重写过滤器中找到它。将路径更改为/auth/**和/api/**@spencergib您能发表评论让我接受吗?这解决了我的问题?这两个谓词是相同的。第二个永远不会匹配。你必须区分它们。通过路径、主机、头或其他方式,您可以在重写过滤器中找到它。将路径更改为/auth/**和/api/**@spencergib你能发表评论让我接受吗,因为这解决了我的问题?