On 13/06/17 21:30, Rossen Stoyanchev wrote: > hi, > > The spec says: > > "If the AsyncContext was initialized via the startAsync(ServletRequest, > ServletResponse) and the request passed is an instance of > HttpServletRequest , then the dispatch is to the URI returned by > HttpServletRequest.getRequestURI()" > > However AsyncContextImpl seems to be using the servletPath: > https://github.com/apache/tomcat/blob/9af8708d7ea3817df47f34146a6ff802d96980fa/java/org/apache/catalina/core/AsyncContextImpl.java#L156-L163 > > So given a URL with an encoded slash (and > UDecoder.ALLOW_ENCODED_SLASH=true): > /foo/vv%2F1234/add/2 > > The dispatch ends up going to: > /foo/vv/1234/add/2 > > Is this intentional? It contradicts the spec.
The commit that introduced this change is: https://svn.apache.org/viewvc?view=revision&revision=1497474 The fix to ServletRequest.getContextPath() was made a little later: https://svn.apache.org/viewvc?view=revision&revision=1593621 This looks like a fairly minor bug that should be an easy fix. Please open a bugzilla issue for this. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org