I've got a client site with some sort of mal-formed request causing tons of these errors in my logs. Here's a snippet of the exception:
[ERROR] 2023-08-24T18:34:55Z io.undertow.request - UT005071: Undertow request failed HttpServerExchange{ CONNECT ip138.com:443}
java.lang.IllegalArgumentException: UT000068: Servlet path match failed
at io.undertow.servlet.handlers.ServletPathMatchesData.getServletHandlerByPath(ServletPathMatchesData.java:83)
at io.undertow.servlet.handlers.ServletPathMatches.getServletHandlerByPath(ServletPathMatches.java:133)
at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:147)
at io.undertow.server.handlers.HttpContinueReadHandler.handleRequest(HttpContinueReadHandler.java:69)
...
What's funny is the part of Undertow that throws the exception has a comment that says, "this should never happen".
//this should never happen
//as the default servlet is always registered under /*
throw UndertowMessages.MESSAGES.servletPathMatchFailed();
What is most unfortunate is that the exception that is thrown doesn't bother to log the actual incoming "path" param so I'm not clear what the actual incoming request is which has an issue.
So, questions are:
- Can the Undertow logging be improved here so the invalid path is logged
- Should this type of error be filling up my logs, which is a DOS concern
- Any idea on what the invalid request looks like. I'm not sure how to interpret the method/URI of "CONNECT ip138.com:443". That IP address is NOT part of our server BTW, so it appears to be a spoofed host header.
I'm also curious
Thanks!
~Brad
Developer Advocate
Ortus Solutions, Corp