From 81867b0bf4265ea217cbe4541e5ffdf290136ffd Mon Sep 17 00:00:00 2001 From: vkovtun <viktor.kovtun@id.ethz.ch> Date: Sat, 5 Aug 2023 12:15:55 +0200 Subject: [PATCH] SSDM-13579: Added a check in the pre-flight requests (OPTIONS) branch, which is required for a DELETE request. This is to make it do a real request check instead of merely accepting everything. --- .../afsserver/http/impl/NettyHttpHandler.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/server-data-store/src/main/java/ch/ethz/sis/afsserver/http/impl/NettyHttpHandler.java b/server-data-store/src/main/java/ch/ethz/sis/afsserver/http/impl/NettyHttpHandler.java index 21eeb2e2663..58131a85b08 100644 --- a/server-data-store/src/main/java/ch/ethz/sis/afsserver/http/impl/NettyHttpHandler.java +++ b/server-data-store/src/main/java/ch/ethz/sis/afsserver/http/impl/NettyHttpHandler.java @@ -67,8 +67,22 @@ public class NettyHttpHandler extends ChannelInboundHandlerAdapter { if (OPTIONS.equals(request.method())) { + final String requestMethod = request.headers().get(HttpHeaderNames.ACCESS_CONTROL_REQUEST_METHOD); + + final HttpResponseStatus responseStatus; + if (requestMethod == null) + { + responseStatus = HttpResponseStatus.BAD_REQUEST; + } else if (!allowedMethods.contains(HttpMethod.valueOf(requestMethod))) + { + responseStatus = HttpResponseStatus.METHOD_NOT_ALLOWED; + } else + { + responseStatus = HttpResponseStatus.OK; + } + final FullHttpResponse response = getHttpResponse( - HttpResponseStatus.OK, + responseStatus, HttpResponse.CONTENT_TYPE_TEXT, new EmptyByteBuf(ByteBufAllocator.DEFAULT), 0); -- GitLab