Merge pull request #5234 from eclipse/jetty-9.4.x-http-09-response-505

Issue #5233 - Bad/Unsupported HTTP version should return 505 not 400.
This commit is contained in:
Joakim Erdfelt 2020-09-09 09:23:01 -05:00 committed by GitHub
commit e7d15afeb6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 6 deletions

View File

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

View File

@ -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"));
}
/**

View File

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