Describe the bug
We're trying to port a Wildfly-Application to Quarkus, which has a custom WebDav-Servlet. After registering the Servlet in quarkus-undertow, part of it works fine, but as soon as a web-dav specific http-verb is used in the request, the servlet is not working. The cause we found was, that the http-method in the HttpServletRequest is not anymore the original http-verb like LOCK but it got changed to OTHER. This seems to originate somewhere in Vertx. After debbuging the error it was still possible to find the original http-verb, but deeply nested inside the request in some vertx-classes, for example
((DefaultHttpRequest)((HttpServerRequestImpl)((ResumingRequestWrapper)((ForwardedServerRequestWrapper)((HttpServerRequestWrapper)((VertxHttpExchange)((HttpServerExchange)((HttpServletRequestImpl)((ServletWebdavRequest)req).req).exchange).delegate).request).delegate).delegate).delegate).request).method
returns the original http-verb.
Expected behaviorHttpServletRequest returns the actual http-verb/method the request was made with, not OTHER
Actual behavior
Every Request with custom-method is transformed to a request with the method OTHER
To Reproduce
Steps to reproduce the behavior:
Register a Servlet in Quarkus-Undertow
Make a Http-Request with a Custom-Verb, like LOCK
See that the servlet gets a Request containing the Verb OTHER
Environment (please complete the following information):
Output of uname -a or ver: Linux d-dev09.sosi20.prosoz.de 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Output of java -version: openjdk version "11.0.8" 2020-07-14 LTS
GraalVM version (if different from Java):
Quarkus version or git rev: 1.8.1.Final
Build tool (ie. output of mvnw --version or gradlew --version):
Describe the bug We're trying to port a Wildfly-Application to Quarkus, which has a custom WebDav-Servlet. After registering the Servlet in quarkus-undertow, part of it works fine, but as soon as a web-dav specific http-verb is used in the request, the servlet is not working. The cause we found was, that the http-method in the
HttpServletRequest
is not anymore the original http-verb likeLOCK
but it got changed toOTHER
. This seems to originate somewhere in Vertx. After debbuging the error it was still possible to find the original http-verb, but deeply nested inside the request in some vertx-classes, for example((DefaultHttpRequest)((HttpServerRequestImpl)((ResumingRequestWrapper)((ForwardedServerRequestWrapper)((HttpServerRequestWrapper)((VertxHttpExchange)((HttpServerExchange)((HttpServletRequestImpl)((ServletWebdavRequest)req).req).exchange).delegate).request).delegate).delegate).delegate).request).method
returns the original http-verb.Expected behavior
HttpServletRequest
returns the actual http-verb/method the request was made with, notOTHER
Actual behavior Every Request with custom-method is transformed to a request with the method
OTHER
To Reproduce
Steps to reproduce the behavior:
LOCK
OTHER
Environment (please complete the following information):
uname -a
orver
:Linux d-dev09.sosi20.prosoz.de 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
java -version
: openjdk version "11.0.8" 2020-07-14 LTS1.8.1.Final
mvnw --version
orgradlew --version
):