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();

Reply via email to