package mircoders.localizer.basic;
import gnu.regexp.RE;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
import mir.entity.Entity;
+import mir.log.LoggerWrapper;
import mir.session.Request;
import mir.util.InternetFunctions;
import mircoders.localizer.MirAntiAbuseFilterType;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
/**
- * <p>Title: </p>
- * <p>Description: </p>
- * <p>Copyright: Copyright (c) 2003</p>
- * <p>Company: </p>
- * @author not attributable
- * @version 1.0
+ * Wrapper around a collection of common filter classes for Mir's
+ * anti-abuse filtering system.
*/
-
public class MirBasicAntiAbuseFilterTypes {
+ protected static final LoggerWrapper logger = new LoggerWrapper("Localizer.ProducerAssistant");
+
private MirBasicAntiAbuseFilterTypes() {
}
/**
* A basic ip filter. Supports x.x.x.x, x.x.x.x/x and x.x.x.x/x.x.x.x expressions.
- *
- * <p>Title: </p>
- * <p>Description: </p>
- * <p>Copyright: Copyright (c) 2003</p>
- * <p>Company: </p>
- * @author not attributable
- * @version 1.0
*/
-
public static class IPFilter extends BasicFilterType {
+ /**
+ *
+ */
public IPFilter(String aName) {
super(aName);
}
+ /**
+ *
+ */
public boolean validate(String anExpression) {
try {
InternetFunctions.isIpAddressInNetwork("1.1.1.1", anExpression);
}
};
+ /**
+ *
+ */
public boolean test(String anExpression, Entity anEntity, Request aRequest) {
try {
return InternetFunctions.isIpAddressInNetwork(aRequest.getHeader("ip"), anExpression);
/**
* A regular expression filter.
- *
- * <p>Title: </p>
- * <p>Description: </p>
- * <p>Copyright: Copyright (c) 2003</p>
- * <p>Company: </p>
- * @author not attributable
- * @version 1.0
*/
-
public static class RegularExpressionFilter extends BasicFilterType {
private boolean exactMatch;
private boolean caseSensitive;
Iterator j;
int flags = 0;
- if (caseSensitive)
- // TODO jlint says this operator is useless
+ if (!caseSensitive) {
flags |= RE.REG_ICASE;
+ }
- RE regularExpression = new RE(anExpression, RE.REG_ICASE);
+ RE regularExpression = new RE(anExpression, flags);
switch (fieldKind) {
case REQUEST_HEADERS:
j = selectedFields.iterator();
while (j.hasNext()) {
- String field = aRequest.getHeader( (String) j.next());
+ String fieldName = (String) j.next();
+ String field = aRequest.getHeader(fieldName);
if (exactMatch) {
if (field != null && regularExpression.isMatch(field)) {