Skip to content

Commit f188eb6

Browse files
committed
Change handling of bad request METHODS to be explicit in the requestParsing stage
1 parent 2d441cd commit f188eb6

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

src/main/java/httpserver/SocketHandler.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import httpserver.request.RequestParser;
55
import httpserver.responder.GeneralResponder;
66
import httpserver.response.BadRequestResponse;
7+
import httpserver.response.MethodNotAllowedResponse;
78
import httpserver.response.Response;
89

910
import java.io.IOException;
@@ -34,6 +35,8 @@ public void run() {
3435
try {
3536
Request request = requestParser.parse(inputStream);
3637
response = generalResponder.respond(appConfig, request);
38+
} catch (IllegalArgumentException e) {
39+
response = new MethodNotAllowedResponse();
3740
} catch (Exception e) {
3841
response = new BadRequestResponse();
3942
}

src/main/java/httpserver/request/RequestParser.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import httpserver.AppConfig;
44
import httpserver.Logger;
5+
import httpserver.Method;
56
import httpserver.header.Header;
67

78
import java.io.*;
@@ -22,6 +23,12 @@ public Request parse(InputStream inputStream) throws IOException {
2223

2324
RequestLine requestLine = getRequestLine(bufferedReader);
2425

26+
try {
27+
Method.valueOf(requestLine.getMethod());
28+
} catch (IllegalArgumentException e) {
29+
throw new IllegalArgumentException();
30+
}
31+
2532
Header[] headers = getHeaders(bufferedReader);
2633

2734
String body = getBody(bufferedReader);

0 commit comments

Comments
 (0)