I've taken a quick crawl through the code and want to re-suggest a possible
cause for the problems we're seeing on 3.2.2 dealing with requests to the
WEB-INF directory.

First of all, this is really the first time I've been through the tomcat
code, and I've done it quickly so there's a high chance for error.  However,
I've tracked the following path:

ContextManager.service
        ContextManager.internalService
                ContextManager.processRequest
                        SimpleMapper1.requestMap

My assumption here is that ContextManager.service is a main entry point...it
appears to be called by almost everything AND has a comment to that effect.
>From that point, there are not many branch points until you reach
SimpleMapper1.requestMap.  The first thing requestMap does is check if
you're asking about the WEB-INF directory and returns 404 if you are.  So,
my working theorey is that anything that calls ContextManager.service,
whether its loading a class from a .jar file, getting a configuration
file...anything...will be vetoed by SimpleMapper1.requestMap.  

A fix I would suggest - change SimpleMapper1.requestMap to only veto
requests to the "standard" tomcat files - directory browsing and web.xml.
We can fine tune it later, but this appears to be a quick dirty fix.
Someone more familar with the code could verify it for me:  am I way in left
field?

Brian Flynn

Reply via email to