1 18 package org.apache.beehive.netui.pageflow; 19 20 import org.apache.beehive.netui.util.logging.Logger; 21 22 import javax.servlet.Filter ; 23 import javax.servlet.FilterConfig ; 24 import javax.servlet.ServletException ; 25 import javax.servlet.ServletRequest ; 26 import javax.servlet.ServletResponse ; 27 import javax.servlet.FilterChain ; 28 import javax.servlet.http.HttpServletResponse ; 29 import javax.servlet.http.HttpServletRequest ; 30 import java.io.IOException ; 31 32 33 38 public class PageFlowForbiddenFilter 39 implements Filter 40 { 41 private static final Logger _log = Logger.getInstance( PageFlowForbiddenFilter.class ); 42 private static final int DEFAULT_RESPONSE_CODE = HttpServletResponse.SC_FORBIDDEN; 43 44 private int _responseCode = DEFAULT_RESPONSE_CODE; 45 46 public void init( FilterConfig filterConfig ) throws ServletException 47 { 48 String responseCodeStr = filterConfig.getInitParameter( "response-code" ); 49 50 if ( responseCodeStr != null ) 51 { 52 try 53 { 54 _responseCode = Integer.parseInt( responseCodeStr ); 55 } 56 catch ( NumberFormatException e ) 57 { 58 _log.error( "Could not parse response-code \"" + responseCodeStr + "\" for Servlet Filter " 59 + PageFlowForbiddenFilter.class.getName(), e ); 60 } 61 } 62 } 63 64 public void doFilter( ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain ) 65 throws IOException , ServletException 66 { 67 if ( ! ( servletResponse instanceof HttpServletResponse ) ) 68 { 69 _log.error( "Servlet Filter " + PageFlowForbiddenFilter.class.getName() + " used against a non-HTTP response: " 70 + servletResponse.getClass().getName() ); 71 return; 72 } 73 74 if ( _log.isInfoEnabled() ) 75 { 76 _log.info( "Request for " + ( ( HttpServletRequest ) servletRequest ).getServletPath() + " handled by " 77 + PageFlowForbiddenFilter.class.getName() ); 78 } 79 80 ( ( HttpServletResponse ) servletResponse ).sendError( _responseCode ); 81 } 82 83 public void destroy() 84 { 85 } 86 } 87 | Popular Tags |