| Mantis - Resin | |||||
| Viewing Issue Advanced Details | |||||
|  | |||||
| ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: | 
| 6217 | minor | always | 03-09-19 15:17 | 03-21-19 16:32 | |
|  | |||||
| Reporter: | stbu | Platform: | |||
| Assigned To: | ferg | OS: | |||
| Priority: | normal | OS Version: | |||
| Status: | closed | Product Version: | 4.0.61 | ||
| Product Build: | Resolution: | fixed | |||
| Projection: | none | ||||
| ETA: | none | Fixed in Version: | 4.0.62 | ||
|  | |||||
| Summary: | 0006217: 500 Servlet Exception when .; appears in URL *not* directly after a / | ||||
| Description: | When ".;" appears somewhere within the Context-Path of a web-app or a URL in general, but not directly after a "/" then a Servlet Exception is raised rather than a proper Response such as 400 Bad Request / The request contains an illegal URL. If these ".;" are not allowed to appear within the URL then Resin should rather respond with a 400 than a 500. 500 Servlet Exception [show] java.lang.IllegalArgumentException: /mywebapp/subfolder/index.;html is an invalid URL. java.lang.IllegalArgumentException: /mywebapp/subfolder/index.;html is an invalid URL. at com.caucho.server.dispatch.ServletInvocation.stripPathParameters(ServletInvocation.java:355) at com.caucho.server.dispatch.ServletInvocation.setContextURI(ServletInvocation.java:104) at com.caucho.server.dispatch.Invocation.setURI(Invocation.java:175) at com.caucho.server.dispatch.InvocationDecoder.splitQueryAndUnescape(InvocationDecoder.java:255) at com.caucho.server.http.AbstractHttpRequest.buildInvocation(AbstractHttpRequest.java:1594) at com.caucho.server.http.AbstractHttpRequest.getInvocation(AbstractHttpRequest.java:1583) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:825) at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1393) at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1349) at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1333) at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1241) at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:1037) at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117) at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93) at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:175) at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61) at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173) at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118) Resin/4.0.61 Server: 'app-0' | ||||
| Steps To Reproduce: | |||||
| Additional Information: | Steps to reproduce: Download fresh Resin-4.0.61 cd webapps mkdir -p mywebapp/subfolder touch mywebapp/subfolder/index.html Example problematic Requests causing 500 Servlet Exception http://localhost:8080/mywebapp/subfolder/index.;html [^] http://localhost:8080/mywebapp/sub.;folder/index.html [^] http://localhost:8080/mywebapp.;/subfolder/index.html [^] Note: If the ".;" appears directly after a / the result is fine with a 400 Bad Request response such as: http://localhost:8080/mywebapp/.;subfolder/index.html [^] http://localhost:8080/mywebapp/subfolder/.;index.html [^] | ||||
| Relationships | |||||
| Attached Files: | |||||
| Notes | |||||
|  | |||||
| 
 | 
 | ||||