Created
August 26, 2014 23:49
-
-
Save murphysean/4ba2e5c6772505bd2934 to your computer and use it in GitHub Desktop.
Header Check Filter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package filters; | |
import javax.servlet.*; | |
import javax.servlet.annotation.WebFilter; | |
import javax.servlet.http.HttpServletRequest; | |
import javax.servlet.http.HttpServletRequestWrapper; | |
import javax.servlet.http.HttpServletResponse; | |
import java.io.IOException; | |
import java.util.logging.Logger; | |
@WebFilter(filterName = "headerCheckFilter", | |
displayName = "Header Check Filter", | |
description = "Adds HTTP Accept Header to all requests that didn't present one", | |
urlPatterns = "/*") | |
public class HeaderCheckFilter implements Filter{ | |
private Logger logger = Logger.getLogger(this.getClass().getName()); | |
public HeaderCheckFilter(){ | |
logger.info("Header Check Filter Instantiated"); | |
} | |
@Override | |
public void init(FilterConfig filterConfig) throws ServletException{ | |
logger.info("Access Control Filter Initialized"); | |
} | |
@Override | |
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException, ServletException{ | |
logger.info("Header Check Filter Do Filter"); | |
if(request instanceof HttpServletRequest && response instanceof HttpServletResponse){ | |
if(((HttpServletRequest)request).getHeader("Accept") == null){ | |
final HttpServletRequest httpServletRequest = (HttpServletRequest)request; | |
HttpServletRequestWrapper wrapper = new HttpServletRequestWrapper(httpServletRequest){ | |
@Override | |
public String getHeader(String name){ | |
if(name.toLowerCase().equals("accept")) | |
if(super.getHeader(name) == null) | |
return "application/json"; | |
return super.getHeader(name); | |
} | |
}; | |
} | |
} | |
chain.doFilter(request,response); | |
} | |
@Override | |
public void destroy(){ | |
logger.info("Header Check Filter Destroyed"); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment