Pages

Wednesday, August 17, 2011

Spring Bean as Servlet Filter

 

Wish

Want to use a Spring bean as JSP Filter.

Solution

Use DelagatingFilterProxy from Spring libarry.

Details

  • Implements the Spring bean from javax.servlet.Filter as usual Filter

public class HeaderValidationFilter implements Filter{

         ……

}

  • Create Spring bean (with Spring XML) as usual

<bean id="filterHeader” class=”com.proprogrammers.HeaderValidationFilter”>

        ……

</bean>

  • In “web.xml” add JSP filter as below:
    • Notice that <filter-name> is the same as bean id above.

<filter>
    <filter-name>filterHeader</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>filterHeader</filter-name>
    <url-pattern>*</url-pattern>
</filter-mapping>

<servlet>
    <servlet-name>Spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

Caveat

Filter bean (at step-2) cannot be defined in Spring Servlet XML file; Spring-servlet.xml in the sample. It must be in other Spring XML file.

Read More

http://static.springsource.org/spring-security/site/docs/3.0.x/reference/security-filter-chain.html

Credits

Collin Yates

http://forum.springsource.org/showthread.php?20230-Howto-The-joy-that-is-DelegatingFilterProxy

0 comments: