From 0c4f879a3a30bc92ecda232f31f075ce6aa3bd01 Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Fri, 18 Aug 2023 16:59:50 +1000 Subject: [PATCH 1/2] Issue #10337 - fixes to SizeLimitHandler Signed-off-by: Lachlan Roberts --- .../eclipse/jetty/server/handler/SizeLimitHandler.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/SizeLimitHandler.java b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/SizeLimitHandler.java index 0b890f713291..0c89e5f4ed83 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/SizeLimitHandler.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/SizeLimitHandler.java @@ -31,8 +31,6 @@ import org.eclipse.jetty.server.HttpOutput; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.util.Callback; -import org.eclipse.jetty.util.log.Log; -import org.eclipse.jetty.util.log.Logger; /** *

A handler that can limit the size of message bodies in requests and responses.

@@ -46,8 +44,6 @@ */ public class SizeLimitHandler extends HandlerWrapper { - private static final Logger LOG = Log.getLogger(SizeLimitHandler.class); - private final long _requestLimit; private final long _responseLimit; @@ -90,7 +86,7 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques baseRequest.getHttpInput().addInterceptor(limit); } - if (_responseLimit > 0) + if (_responseLimit >= 0) { httpOutput.setInterceptor(limit); response = new LimitResponse(response); @@ -132,7 +128,7 @@ public HttpInput.Content readFrom(HttpInput.Content content) if (content.hasContent()) { _read += content.remaining(); - checkResponseLimit(_read); + checkRequestLimit(_read); } return content; } From 325d83912d5516a6869dcfeb4293cfee97371b39 Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Fri, 18 Aug 2023 17:25:57 +1000 Subject: [PATCH 2/2] update test expectations in SizeLimitHandlerTest Signed-off-by: Lachlan Roberts --- .../eclipse/jetty/server/handler/SizeLimitHandlerTest.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/handler/SizeLimitHandlerTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/handler/SizeLimitHandlerTest.java index 8206964eb854..10373acc4f49 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/handler/SizeLimitHandlerTest.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/handler/SizeLimitHandlerTest.java @@ -111,6 +111,7 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques _local.getResponse("GET /ctx/hello HTTP/1.0\r\n\r\n")); assertThat(response.getStatus(), equalTo(500)); assertThat(response.getContent(), containsString("8193>8192")); + assertThat(response.getContent(), containsString("Response body is too large")); } @Test @@ -130,6 +131,7 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques _local.getResponse("GET /ctx/hello HTTP/1.0\r\n\r\n")); assertThat(response.getStatus(), equalTo(500)); assertThat(response.getContent(), containsString("8193>8192")); + assertThat(response.getContent(), containsString("Response body is too large")); } @Test @@ -219,6 +221,7 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques "\r\n" + "123456...")); assertThat(response.getStatus(), equalTo(413)); + assertThat(response.getContent(), containsString("Request body is too large")); assertThat(response.getContent(), containsString("32768>8192")); } @@ -253,7 +256,8 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques HttpTester.Response response = HttpTester.parseResponse(endp.getResponse()); - assertThat(response.getStatus(), equalTo(500)); + assertThat(response.getStatus(), equalTo(413)); + assertThat(response.getContent(), containsString("Request body is too large")); assertThat(response.getContent(), containsString(">8192")); } }