KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > beehive > netui > pageflow > PageFlowForbiddenFilter


1 /*
2  * Copyright 2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  * $Header:$
17  */

18 package org.apache.beehive.netui.pageflow;
19
20 import org.apache.beehive.netui.util.logging.Logger;
21
22 import javax.servlet.Filter JavaDoc;
23 import javax.servlet.FilterConfig JavaDoc;
24 import javax.servlet.ServletException JavaDoc;
25 import javax.servlet.ServletRequest JavaDoc;
26 import javax.servlet.ServletResponse JavaDoc;
27 import javax.servlet.FilterChain JavaDoc;
28 import javax.servlet.http.HttpServletResponse JavaDoc;
29 import javax.servlet.http.HttpServletRequest JavaDoc;
30 import java.io.IOException JavaDoc;
31
32
33 /**
34  * Servlet Filter that sends a specified error code on the response. Used to prevent Java source from being displayed
35  * in the browser, in the case where it is mixed in with web content, and the web content directory itself is being
36  * deployed.
37  */

38 public class PageFlowForbiddenFilter
39         implements Filter JavaDoc
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 JavaDoc filterConfig ) throws ServletException JavaDoc
47     {
48         String JavaDoc responseCodeStr = filterConfig.getInitParameter( "response-code" );
49         
50         if ( responseCodeStr != null )
51         {
52             try
53             {
54                 _responseCode = Integer.parseInt( responseCodeStr );
55             }
56             catch ( NumberFormatException JavaDoc 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 JavaDoc servletRequest, ServletResponse JavaDoc servletResponse, FilterChain JavaDoc filterChain )
65             throws IOException JavaDoc, ServletException JavaDoc
66     {
67         if ( ! ( servletResponse instanceof HttpServletResponse JavaDoc ) )
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 JavaDoc ) servletRequest ).getServletPath() + " handled by "
77                        + PageFlowForbiddenFilter.class.getName() );
78         }
79         
80         ( ( HttpServletResponse JavaDoc ) servletResponse ).sendError( _responseCode );
81     }
82
83     public void destroy()
84     {
85     }
86 }
87
Popular Tags