Skip to content

Commit

Permalink
Issue #5233 - Bad/Unsupported HTTP version should return 505 not 400.
Browse files Browse the repository at this point in the history
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
  • Loading branch information
joakime committed Sep 4, 2020
1 parent be86e66 commit b2e0f69
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -766,7 +766,7 @@ private boolean parseLine(ByteBuffer buffer)
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;
Expand Down Expand Up @@ -942,10 +942,10 @@ else if (n == HttpTokens.LINE_FEED)
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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,12 +158,12 @@ public void testHttp09NoVersion() throws Exception
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"));
}

/**
Expand Down

0 comments on commit b2e0f69

Please sign in to comment.