From 00dc80c605292b1eb9faa0b08fa6b94c7f5352a2 Mon Sep 17 00:00:00 2001 From: Jonas_Jones <91549607+J-onasJones@users.noreply.github.com> Date: Wed, 6 Sep 2023 20:46:50 +0200 Subject: [PATCH] added bad request response when api disabled --- .../me/jonasjones/mcwebserver/web/HttpServer.java | 13 +++++++------ .../mcwebserver/web/api/v1/ApiRequests.java | 4 ++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/me/jonasjones/mcwebserver/web/HttpServer.java b/src/main/java/me/jonasjones/mcwebserver/web/HttpServer.java index 0592ad3..e8b07b7 100644 --- a/src/main/java/me/jonasjones/mcwebserver/web/HttpServer.java +++ b/src/main/java/me/jonasjones/mcwebserver/web/HttpServer.java @@ -137,6 +137,7 @@ public class HttpServer implements Runnable { dataOut.flush(); } else if (isApiRequest(fileRequested)) { isApiv1Request = true; + // Check if server API is enabled if (ModConfigs.SERVER_API_ENABLED) { // Set appropriate response headers dataOut.write("HTTP/1.1 200 OK\r\n".getBytes(StandardCharsets.UTF_8)); @@ -177,17 +178,17 @@ public class HttpServer implements Runnable { } } else { // Server API is disabled + String jsonString = ApiRequests.forbiddenRequest(); + byte[] jsonBytes = jsonString.getBytes(StandardCharsets.UTF_8); + int contentLength = jsonBytes.length; dataOut.write("HTTP/1.1 403 Forbidden\r\n".getBytes(StandardCharsets.UTF_8)); dataOut.write("Date: %s\r\n".formatted(Instant.now()).getBytes(StandardCharsets.UTF_8)); - dataOut.write("Content-Type: text/html\r\n".getBytes(StandardCharsets.UTF_8)); - dataOut.write("Content-Length: 0\r\n".getBytes(StandardCharsets.UTF_8)); + dataOut.write("Content-Type: application/json\r\n".getBytes(StandardCharsets.UTF_8)); + dataOut.write(("Content-Length: " + contentLength + "\r\n").getBytes(StandardCharsets.UTF_8)); dataOut.write("\r\n".getBytes(StandardCharsets.UTF_8)); // Blank line before content + dataOut.write(jsonBytes, 0, contentLength); dataOut.flush(); } - - - - } else { isApiv1Request = false; // GET or HEAD method diff --git a/src/main/java/me/jonasjones/mcwebserver/web/api/v1/ApiRequests.java b/src/main/java/me/jonasjones/mcwebserver/web/api/v1/ApiRequests.java index af6ce47..885a721 100644 --- a/src/main/java/me/jonasjones/mcwebserver/web/api/v1/ApiRequests.java +++ b/src/main/java/me/jonasjones/mcwebserver/web/api/v1/ApiRequests.java @@ -28,4 +28,8 @@ public class ApiRequests { public static String internalServerError() { return "{\"error\":{\"status\":500,\"message\":\"Internal Server Error\"}}"; } + + public static String forbiddenRequest() { + return "{\"error\":{\"status\":403,\"message\":\"Forbidden\"}}"; + } }