X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Flocalizer%2Fbasic%2FMirBasicOpenPostingLocalizer.java;h=a851ac08d4fcb258b126c4dee0e7d9be989b9893;hb=42680c1f9fe3250bcbd0f9ed5d9dee6188333b15;hp=5501e7aecb6785398a564a64bdb19e50fb4c9a88;hpb=213122e7c65211f549722f05aa8e0135f15af35c;p=mir.git diff --git a/source/mircoders/localizer/basic/MirBasicOpenPostingLocalizer.java b/source/mircoders/localizer/basic/MirBasicOpenPostingLocalizer.java index 5501e7ae..a851ac08 100755 --- a/source/mircoders/localizer/basic/MirBasicOpenPostingLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicOpenPostingLocalizer.java @@ -35,9 +35,11 @@ import mir.session.Request; import mir.session.Session; import mir.session.SessionHandler; import mircoders.abuse.FilterType; -import mircoders.abuse.ThrottleFilter; import mircoders.abuse.IPFilterType; import mircoders.abuse.RegularExpressionFilterType; +import mircoders.abuse.ThrottleFilter; +import mircoders.abuse.PostingSizeFilterType; +import mircoders.abuse.URLBlacklistFilterType; import mircoders.entity.EntityComment; import mircoders.entity.EntityContent; import mircoders.global.MirGlobal; @@ -46,7 +48,14 @@ import mircoders.localizer.MirLocalizerExc; import mircoders.localizer.MirLocalizerFailure; import mircoders.localizer.MirOpenPostingLocalizer; -import java.util.*; +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; @@ -56,7 +65,7 @@ public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer { protected LoggerWrapper logger; protected MirPropertiesConfiguration configuration; - public MirBasicOpenPostingLocalizer() throws MirLocalizerExc, MirLocalizerFailure { + public MirBasicOpenPostingLocalizer() throws MirLocalizerFailure { logger = new LoggerWrapper("Localizer.Basic.OpenPosting"); try { @@ -88,7 +97,10 @@ public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer { addSimpleAntiAbuseFilterType(new IPFilterType("ip")); addSimpleAntiAbuseFilterType(new RegularExpressionFilterType("hostname", false, false, RegularExpressionFilterType.REQUEST_HEADERS, new String[] {"hostname"})); - addSimpleAntiAbuseFilterType(new ThrottleFilter("throttle", 60*60*1000)); + 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 { @@ -128,10 +140,18 @@ public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer { } } - public void afterContentPosting(EntityContent aContent) { + public void afterArticlePosting() { afterContentPosting(); } + public void afterArticlePosting(EntityContent anArticle) { + afterContentPosting(anArticle); + } + + public void afterContentPosting(EntityContent anArticle) { + afterArticlePosting(); + } + public void afterCommentPosting(EntityComment aComment) { afterCommentPosting(); } @@ -158,8 +178,9 @@ public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer { long l = System.currentTimeMillis(); l = (l*l*l*l)/random; - if (l<0) + if (l<0) { l = l * -1; + } String returnString = ""+l; @@ -167,7 +188,11 @@ public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer { } public List getAntiAbuseFilterTypes() { - return filterTypes; + return Collections.unmodifiableList(filterTypes); + } + + public boolean allowArticlePublication(EntityContent anArticle){ + return anArticle != null && "1".equals(anArticle.getFieldValue("is_published")); } public void removeSimpleAntiAbuseFilterType(String aName) {