This is an automated email from the ASF dual-hosted git repository.
Aias00 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new dcd32463d0 fix(response): support non-standard status codes (#7989)
dcd32463d0 is described below
commit dcd32463d01438efb51acfc7d0bc0af75e46d9ec
Author: Duansg <[email protected]>
AuthorDate: Thu Oct 22 19:04:48 2026 -0700
fix(response): support non-standard status codes (#7989)
---
.../plugin/modify/response/ModifyResponsePlugin.java | 4 ++--
.../plugin/modify/response/ModifyResponsePluginTest.java | 15 +++++++++++++++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git
a/shenyu-plugin/shenyu-plugin-modify-response/src/main/java/org/apache/shenyu/plugin/modify/response/ModifyResponsePlugin.java
b/shenyu-plugin/shenyu-plugin-modify-response/src/main/java/org/apache/shenyu/plugin/modify/response/ModifyResponsePlugin.java
index df92371bba..92ce3d8306 100644
---
a/shenyu-plugin/shenyu-plugin-modify-response/src/main/java/org/apache/shenyu/plugin/modify/response/ModifyResponsePlugin.java
+++
b/shenyu-plugin/shenyu-plugin-modify-response/src/main/java/org/apache/shenyu/plugin/modify/response/ModifyResponsePlugin.java
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.core.io.buffer.DataBufferUtils;
import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
+import org.springframework.http.HttpStatusCode;
import org.springframework.http.MediaType;
import org.springframework.http.server.reactive.ServerHttpResponseDecorator;
import org.springframework.web.server.ServerWebExchange;
@@ -163,7 +163,7 @@ public class ModifyResponsePlugin extends
AbstractShenyuPlugin {
// reset http status
if (this.ruleHandle.getStatusCode() > 0) {
-
this.setStatusCode(HttpStatus.valueOf(this.ruleHandle.getStatusCode()));
+
this.setStatusCode(HttpStatusCode.valueOf(this.ruleHandle.getStatusCode()));
}
// reset http headers
diff --git
a/shenyu-plugin/shenyu-plugin-modify-response/src/test/java/org/apache/shenyu/plugin/modify/response/ModifyResponsePluginTest.java
b/shenyu-plugin/shenyu-plugin-modify-response/src/test/java/org/apache/shenyu/plugin/modify/response/ModifyResponsePluginTest.java
index 145311f767..99395bf738 100644
---
a/shenyu-plugin/shenyu-plugin-modify-response/src/test/java/org/apache/shenyu/plugin/modify/response/ModifyResponsePluginTest.java
+++
b/shenyu-plugin/shenyu-plugin-modify-response/src/test/java/org/apache/shenyu/plugin/modify/response/ModifyResponsePluginTest.java
@@ -39,6 +39,7 @@ import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.context.ApplicationContext;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
+import org.springframework.http.HttpStatusCode;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
@@ -145,6 +146,20 @@ public final class ModifyResponsePluginTest {
.verifyComplete();
}
+ @Test
+ public void testWriteWithNonStandardStatusCode() {
+ final ModifyResponseRuleHandle responseRuleHandle = new
ModifyResponseRuleHandle();
+ responseRuleHandle.setStatusCode(499);
+ final ModifyResponsePlugin.ModifyResponseDecorator decorator =
+ new ModifyResponsePlugin.ModifyResponseDecorator(exchange,
responseRuleHandle);
+ final MockServerHttpResponse response = (MockServerHttpResponse)
exchange.getResponse();
+ final DataBuffer dataBuffer =
response.bufferFactory().wrap("ok".getBytes(StandardCharsets.UTF_8));
+
+
StepVerifier.create(decorator.writeWith(Mono.just(dataBuffer))).verifyComplete();
+
+ assertEquals(HttpStatusCode.valueOf(499), response.getStatusCode());
+ }
+
@Test
public void testWriteWithPreservesNonJsonBodyForHeaderOnlyRule() {
final ModifyResponseRuleHandle responseRuleHandle = new
ModifyResponseRuleHandle();