001/* 002 * (C) Copyright 2006-2011 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 * 016 * Contributors: 017 * bstefanescu 018 */ 019package org.nuxeo.ecm.webengine.jaxrs; 020 021import java.io.IOException; 022 023import javax.servlet.Filter; 024import javax.servlet.FilterChain; 025import javax.servlet.ServletException; 026import javax.servlet.ServletRequest; 027import javax.servlet.ServletResponse; 028import javax.servlet.http.HttpServletRequest; 029import javax.servlet.http.HttpServletResponse; 030 031/** 032 * Simple abstract filter that provides filter activation logic. 033 * 034 * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a> 035 */ 036public abstract class HttpFilter implements Filter { 037 038 public static final boolean getBoolean(ServletRequest request, String key) { 039 return Boolean.parseBoolean((String) request.getAttribute(key)); 040 } 041 042 @Override 043 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, 044 ServletException { 045 if (request instanceof HttpServletRequest == false) { 046 chain.doFilter(request, response); 047 return; 048 } 049 run((HttpServletRequest) request, (HttpServletResponse) response, chain); 050 } 051 052 protected abstract void run(HttpServletRequest request, HttpServletResponse response, FilterChain chain) 053 throws IOException, ServletException; 054 055}