user agent filters now use sub strings instead of regular expressions
[mir.git] / source / mircoders / localizer / basic / MirBasicOpenPostingLocalizer.java
index 0133316..82b36e9 100755 (executable)
  */
 package mircoders.localizer.basic;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.Collections;
-
 import mir.config.MirPropertiesConfiguration;
 import mir.log.LoggerWrapper;
 import mir.session.Request;
@@ -45,7 +37,10 @@ import mir.session.SessionHandler;
 import mircoders.abuse.FilterType;
 import mircoders.abuse.IPFilterType;
 import mircoders.abuse.RegularExpressionFilterType;
+import mircoders.abuse.SubStringFilterType;
 import mircoders.abuse.ThrottleFilter;
+import mircoders.abuse.PostingSizeFilterType;
+import mircoders.abuse.URLBlacklistFilterType;
 import mircoders.entity.EntityComment;
 import mircoders.entity.EntityContent;
 import mircoders.global.MirGlobal;
@@ -54,6 +49,15 @@ import mircoders.localizer.MirLocalizerExc;
 import mircoders.localizer.MirLocalizerFailure;
 import mircoders.localizer.MirOpenPostingLocalizer;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.Arrays;
+
 public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer {
   private List afterContentProducerTasks;
   private List afterCommentProducerTasks;
@@ -89,12 +93,15 @@ public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer {
     filterTypesMap = new HashMap();
 
     addSimpleAntiAbuseFilterType(new RegularExpressionFilterType("regexp"));
-    addSimpleAntiAbuseFilterType(new RegularExpressionFilterType("useragent", false, false,
-        RegularExpressionFilterType.REQUEST_HEADERS, new String[] {"User-Agent"}));
+    addSimpleAntiAbuseFilterType(new SubStringFilterType("useragent", false, false,
+        SubStringFilterType.REQUEST_HEADERS, new String[] {"User-Agent"}));
     addSimpleAntiAbuseFilterType(new IPFilterType("ip"));
     addSimpleAntiAbuseFilterType(new RegularExpressionFilterType("hostname", false, false,
         RegularExpressionFilterType.REQUEST_HEADERS, new String[] {"hostname"}));
     addSimpleAntiAbuseFilterType(new ThrottleFilter("throttle"));
+    addSimpleAntiAbuseFilterType(new PostingSizeFilterType("size"));
+    addSimpleAntiAbuseFilterType(new URLBlacklistFilterType("urlblacklist",
+        Arrays.asList(MirGlobal.config().getStringArray("Mir.URLBlacklistFilter.WhiteList"))));
   }
 
   public SessionHandler getOpenSessionHandler(String aSessionType) throws MirLocalizerExc, MirLocalizerFailure  {