/*
* WebFlow Navigation Manager: webflow definiton, server side navigation history and automatic session cleaning.
* Distributed under LGPL license at web site http://wfnm.sourceforge.net .
*/
package net.sf.wfnm.web;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* This filter replaces the http session with a wrapper which notify to the WFNM framework the binding/unbinding of
* objects to/from the original session.
*
* @author <a href="mailto:malbari@users.sourceforge.net">Maurizio Albari</a>
* @version 1.0.6
*/
public class SessionBindingFilter implements Filter {
/**
* Destroy the filter.
*/
public void destroy() {
}
/**
* Filter the request by replacing the request with a wrapper that returns the HttpSessionWrapper as a session
* implementation.
*
* @param servletRequest the servlet request
* @param servletResponse the servlet response
* @param filterChain the filter chain
*
* @throws IOException if an I/O exception ocours
* @throws ServletException if a servlet exception ocours
*/
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
ServletRequest sessionBindingRequest = new HttpServletRequestWrapper((HttpServletRequest) servletRequest);
HttpServletResponse response = (HttpServletResponse) servletResponse;
ResponseFactory.addNoCacheHeaderDirective(response);
filterChain.doFilter(sessionBindingRequest, servletResponse);
}
/**
* Initialize the filter.
*
* @param filterConfig the filter configuration
*
* @throws ServletException if a servlet exception ocours
*/
public void init(FilterConfig filterConfig) throws ServletException {
}
}