我开始设置一个Spring Cloud Gateway,它在uri中没有查询参数的情况下工作得很好。但是我需要一些参数,它们不是固定的,我不使用它们来选择路由,我只需要它们和uri一起发送,没有任何改变。
例如,网址:
http://localhost:8080/dev/select config/v1/ABCDE
可以工作,但对于查询参数,它不会:
http://localhost:8080/dev/selectconfig/v1/ABCDE?config={"高度": 22,"宽度": 30}
我收到 400 错误请求。我想重定向到网址:
https://somehosthere.com/dev/selectconfig/v1/ABCDE?config={ "高度":22,"宽度":30}
spring:
cloud:
gateway:
routes:
- id: route1
uri: https://somehosthere.com/
predicates:
- Path=/dev/selectconfig/**
filters:
- AddRequestHeader=SOMEKEY, ${SOMEKEY}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.1</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.company</groupId>
<artifactId>gw</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>gw</name>
<description>Gateway application</description>
<properties>
<java.version>17</java.version>
<spring-cloud.version>2021.0.3</spring-cloud.version>
<io.jsonwebtoken.version>0.11.5</io.jsonwebtoken.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>${io.jsonwebtoken.version}</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>${io.jsonwebtoken.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-orgjson</artifactId>
<version>${io.jsonwebtoken.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
请尝试此配置
spring:
cloud:
gateway:
routes:
- id: route1
uri: https://somehosthere.com/
predicates:
- Path=/dev/selectconfig/**
- Query=config
filters:
- AddRequestHeader=SOMEKEY, ${SOMEKEY}
请注意查询
谓词。如果要更好地控制查询参数值,可以添加正则表达式。有关更多详细信息,请参阅此链接
我不知道spring-cloud-gateway是否支持从领事注册中心读取路由,就像Zuul一样。 另外,我用--debug启动了这一行:
我们有一个要求,我们正在消费来自一个主题的消息,然后发生了一些丰富,然后我们将消息发布到另一个主题。以下是事件 使用者 - 使用消息 扩充 - 扩充使用的消息 制作人 - 已发布 向其他主题发送的丰富消息 我正在使用Spring cloud kafka binder,一切正常。突然,我们观察到生产者正在向主题发送重复的消息,然后我们使生产者是幂等的。为了更好地控制,我们将autocommitOff
问题内容: 我正在尝试通过经典的ASP记录集执行以下查询- 尽管我遇到了权限问题。所以我收到的错误是- Microsoft OLE DB提供程序的ODBC驱动程序错误‘80040e09’ [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]对对象“ A_Permission”,数据库“ HRWB_3_0”,架构“ dbo”的选择权限被拒绝。 在不更改权限设置
问题内容: 好吧,我要为此疯狂。MySQL恰好适合这种SQL: 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第1行的’COURSENAME)’附近使用正确的语法 我的调试代码显示了两个已填充的参数值。 问题答案: MySQL不支持命名参数占位符。您可以使用 只能 定位参数占位符。也就是说,占位符只是一个符号。 顺便说一下,这符合ANSI SQL的行为。像Oracle这样的R
我正在使用Spring Cloud。我的Spring boot应用程序、、和中有四个服务。我尝试使用API Gateway调用和。当我从API Gateway调用My时,它可以正常工作,但不起作用。当我尝试获取时,我收到未找到错误。我是Spring Cloud的新人。这是我的代码。 下面是我的网址,最后一个网址是404 实体 学院控制员 应用程序. yml 学生管理员实体 应用程序. yml 应用