Skip to content

Commit 8aced15

Browse files
committed
[java] Add supported methods check
1 parent 02a611d commit 8aced15

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

‎java/src/org/openqa/selenium/netty/server/RequestConverter.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@
1717

1818
package org.openqa.selenium.netty.server;
1919

20+
import static io.netty.handler.codec.http.HttpMethod.DELETE;
21+
import static io.netty.handler.codec.http.HttpMethod.GET;
2022
import static io.netty.handler.codec.http.HttpMethod.HEAD;
23+
import static io.netty.handler.codec.http.HttpMethod.OPTIONS;
24+
import static io.netty.handler.codec.http.HttpMethod.POST;
2125
import static org.openqa.selenium.remote.http.Contents.memoize;
2226

2327
import com.google.common.io.ByteStreams;
@@ -47,6 +51,8 @@
4751
import java.io.PipedInputStream;
4852
import java.io.PipedOutputStream;
4953
import java.io.UncheckedIOException;
54+
import java.util.Arrays;
55+
import java.util.List;
5056
import java.util.concurrent.ExecutorService;
5157
import java.util.concurrent.Executors;
5258
import java.util.logging.Logger;
@@ -56,6 +62,8 @@ class RequestConverter extends SimpleChannelInboundHandler<HttpObject> {
5662
private static final Logger LOG = Logger.getLogger(RequestConverter.class.getName());
5763
private static final ExecutorService EXECUTOR = Executors.newSingleThreadExecutor();
5864
private volatile PipedOutputStream out;
65+
private static final List<io.netty.handler.codec.http.HttpMethod> supportedMethods =
66+
Arrays.asList(DELETE, GET, POST, OPTIONS);
5967

6068
@Override
6169
protected void channelRead0(
@@ -132,14 +140,18 @@ private HttpRequest createRequest(
132140
HttpMethod method;
133141
if (nettyRequest.method().equals(HEAD)) {
134142
method = HttpMethod.GET;
135-
} else {
143+
} else if (supportedMethods.contains(nettyRequest.method())) {
136144
try {
137145
method = HttpMethod.valueOf(nettyRequest.method().name());
138146
} catch (IllegalArgumentException e) {
139147
ctx.writeAndFlush(
140148
new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.METHOD_NOT_ALLOWED));
141149
return null;
142150
}
151+
} else {
152+
ctx.writeAndFlush(
153+
new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.METHOD_NOT_ALLOWED));
154+
return null;
143155
}
144156

145157
// Attempt to decode parameters

0 commit comments

Comments
 (0)