KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > myvietnam > mvncore > filter > UserAgentFilter


1 /*
2  * $Header: /cvsroot/mvnforum/myvietnam/src/net/myvietnam/mvncore/filter/UserAgentFilter.java,v 1.8 2006/04/15 02:59:19 minhnn Exp $
3  * $Author: minhnn $
4  * $Revision: 1.8 $
5  * $Date: 2006/04/15 02:59:19 $
6  *
7  * ====================================================================
8  *
9  * Copyright (C) 2002-2006 by MyVietnam.net
10  *
11  * All copyright notices regarding MyVietnam and MyVietnam CoreLib
12  * MUST remain intact in the scripts and source code.
13  *
14  * This library is free software; you can redistribute it and/or
15  * modify it under the terms of the GNU Lesser General Public
16  * License as published by the Free Software Foundation; either
17  * version 2.1 of the License, or (at your option) any later version.
18  *
19  * This library is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22  * Lesser General Public License for more details.
23  *
24  * You should have received a copy of the GNU Lesser General Public
25  * License along with this library; if not, write to the Free Software
26  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
27  *
28  * Correspondence and Marketing Questions can be sent to:
29  * info at MyVietnam net
30  *
31  * @author: Minh Nguyen
32  * @author: Mai Nguyen
33  */

34 package net.myvietnam.mvncore.filter;
35
36 import javax.servlet.http.HttpServletRequest JavaDoc;
37
38 import net.myvietnam.mvncore.MVNCoreConfig;
39 import net.myvietnam.mvncore.util.StringUtil;
40 import org.apache.commons.logging.Log;
41 import org.apache.commons.logging.LogFactory;
42
43 public final class UserAgentFilter {
44
45     private static Log log = LogFactory.getLog(UserAgentFilter.class);
46
47     private static String JavaDoc[] blockedUserAgent = null;
48
49     private UserAgentFilter() { //prevent instantiation
50
}
51
52     static {
53         //UserAgentOptions UserAgentOptions = new UserAgentOptions();
54
//blockedUserAgent = StringUtil.getStringArray(UserAgentOptions.blockedUserAgent, ";");
55

56         blockedUserAgent = StringUtil.getStringArray(MVNCoreConfig.getBlockedUserAgents(), ";");
57     }
58
59     /**
60      * Filter the UserAgent
61      * @param request
62      * @return true if the UserAgent in this request is ok
63      * false if the UserAgent in this request is blocked
64      */

65     public static boolean filter(HttpServletRequest JavaDoc request) {
66         if (request == null) {
67             throw new NullPointerException JavaDoc("Cannot accept a null request in UserAgentFilter");
68         }
69         String JavaDoc checkUserAgent = request.getHeader("User-Agent");
70
71         //@todo: in this case, should we return true or false ?
72
if (checkUserAgent == null) return true;
73
74         for (int i = 0; i < blockedUserAgent.length; i++) {
75             String JavaDoc currentBlockedUserAgent = blockedUserAgent[i];
76             if (checkUserAgent.indexOf(currentBlockedUserAgent) != -1) {
77                 return false;
78             }
79         }
80         return true;
81     }
82 }
83
Popular Tags