Mantis - Resin
Viewing Issue Advanced Details
1634 major always 03-06-07 14:18 04-03-07 15:02
dpasek  
ferg  
normal  
closed 3.1.0  
fixed  
none    
none 3.1.1  
0001634: No filter chain for named dispatcher
Using a named dispatcher for forwarding a request to a servlet no filter chain is applied to the called servlet.
Example (see attached web app):
Servlet1: DispatcherServlet
Servlet2: RenderServlet
Filter1 is mapped to RenderServlet (FORWARD dispatcher)

web.xml:

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" [^] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" [^] xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee [^] http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> [^]
    <filter>
        <filter-name>MessageFilter</filter-name>
        <filter-class>de.gisdesign.resinbug.MessageFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>MessageFilter</filter-name>
        <servlet-name>RenderServlet</servlet-name>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    <servlet>
        <description>Servlet for dispatching to the render servlet using a named dispatcher</description>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>de.gisdesign.resinbug.DispatcherServlet</servlet-class>
    </servlet>
    <servlet>
        <description>Render servlet for rendering the secret message injected by the filter</description>
        <servlet-name>RenderServlet</servlet-name>
        <servlet-class>de.gisdesign.resinbug.RenderServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/dispatch</url-pattern>
    </servlet-mapping>
</web-app>

DispatcherServlet forwards the request to RenderServlet using a named dispatcher but the filter for RenderServlet is never called.

In my understanding of the servlet specification filters must always be applied, completely independent of the type of the dispatcher.

Tomcat and Jetty perform the filter correctly.
 resin-filter.war [^] (4,974 bytes) 03-06-07 14:18
 resin-filter-src.tar.gz [^] (17,448 bytes) 03-06-07 14:22

Notes
(0001806)
ferg   
04-03-07 15:02   
server/1739