package com.idega.servlet.filter;
import java.io.IOException;
import java.util.Enumeration;
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.HttpServletResponse;
/**
* A filter that adds any header you define in web.xml to any URI the filter is registered to.
* Example settings:
* <filter>
* <filter-name>ResponseHeaderFilter</filter-name>
* <filter-class>com.idega.servlet.filter.ResponseHeaderFilter</filter-class>
* <init-param>
* <param-name>Cache-Control</param-name>
* <param-value>max-age=3600</param-value>
* </init-param>
* </filter>
*
* <filter-mapping>
* <filter-name>ResponseHeaderFilter</filter-name>
* <url-pattern>/idegaweb/bundles/*</url-pattern>
* </filter-mapping>
*
* @author eiki
*
*/
public class ResponseHeaderFilter implements Filter {
FilterConfig fc;
public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
// set the provided HTTP response parameters
for (Enumeration e = fc.getInitParameterNames(); e.hasMoreElements();) {
String headerName = (String) e.nextElement();
response.addHeader(headerName, fc.getInitParameter(headerName));
}
// pass the request/response on
chain.doFilter(req, response);
}
public void init(FilterConfig filterConfig) {
this.fc = filterConfig;
}
public void destroy() {
this.fc = null;
}
}