From b2e0f69ea89710384a3b41276a5a81c614a520d5 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Fri, 4 Sep 2020 12:23:11 -0500 Subject: [PATCH 1/2] Issue #5233 - Bad/Unsupported HTTP version should return 505 not 400. Signed-off-by: Joakim Erdfelt --- .../src/main/java/org/eclipse/jetty/http/HttpParser.java | 6 +++--- .../java/org/eclipse/jetty/server/HttpConnectionTest.java | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java index 4f34c27075b..e6da0a2d736 100644 --- a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java +++ b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java @@ -766,7 +766,7 @@ public class HttpParser case LF: // HTTP/0.9 if (complianceViolation(HttpComplianceSection.NO_HTTP_0_9, "No request version")) - throw new BadMessageException("HTTP/0.9 not supported"); + throw new BadMessageException(HttpStatus.HTTP_VERSION_NOT_SUPPORTED_505, "HTTP/0.9 not supported"); _requestHandler.startRequest(_methodString, _uri.toString(), HttpVersion.HTTP_0_9); setState(State.CONTENT); _endOfContent = EndOfContent.NO_CONTENT; @@ -942,10 +942,10 @@ public class HttpParser private void checkVersion() { if (_version == null) - throw new BadMessageException(HttpStatus.BAD_REQUEST_400, "Unknown Version"); + throw new BadMessageException(HttpStatus.HTTP_VERSION_NOT_SUPPORTED_505, "Unknown Version"); if (_version.getVersion() < 10 || _version.getVersion() > 20) - throw new BadMessageException(HttpStatus.BAD_REQUEST_400, "Bad Version"); + throw new BadMessageException(HttpStatus.HTTP_VERSION_NOT_SUPPORTED_505, "Unsupported Version"); } private void parsedHeader() diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpConnectionTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpConnectionTest.java index 322823388d1..bf4dbe48da9 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpConnectionTest.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpConnectionTest.java @@ -158,12 +158,12 @@ public class HttpConnectionTest connector.getConnectionFactory(HttpConnectionFactory.class).setHttpCompliance(HttpCompliance.RFC2616); String request = "GET / HTTP/0.9\r\n\r\n"; String response = connector.getResponse(request); - assertThat(response, containsString("400 Bad Version")); + assertThat(response, containsString("505 Unsupported Version")); connector.getConnectionFactory(HttpConnectionFactory.class).setHttpCompliance(HttpCompliance.RFC7230); request = "GET / HTTP/0.9\r\n\r\n"; response = connector.getResponse(request); - assertThat(response, containsString("400 Bad Version")); + assertThat(response, containsString("505 Unsupported Version")); } /** From 56b1d17d79b2b15df32a94ae034c2297c62802eb Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 8 Sep 2020 05:59:41 -0500 Subject: [PATCH 2/2] Issue #5233 - correcting NCSARequestLogTest expectation on unsupported version Signed-off-by: Joakim Erdfelt --- .../org/eclipse/jetty/server/handler/NcsaRequestLogTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/handler/NcsaRequestLogTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/handler/NcsaRequestLogTest.java index b8fb6a799a3..4bd0699e410 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/handler/NcsaRequestLogTest.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/handler/NcsaRequestLogTest.java @@ -303,7 +303,7 @@ public class NcsaRequestLogTest _connector.getResponse("METHOD /foo HTTP/9\n\n"); String log = _entries.poll(5, TimeUnit.SECONDS); assertThat(log, containsString("\"- - -\"")); - assertThat(log, containsString(" 400 ")); + assertThat(log, containsString(" 505 ")); } @ParameterizedTest()