import mir.session.Request;
import mir.session.Session;
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.abuse.*;
import mircoders.entity.EntityComment;
import mircoders.entity.EntityContent;
import mircoders.global.MirGlobal;
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;
+import java.util.*;
+import java.awt.image.BufferedImage;
+
+import com.octo.captcha.service.image.DefaultManageableImageCaptchaService;
+import com.octo.captcha.service.image.ImageCaptchaService;
public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer {
private List afterContentProducerTasks;
private Map filterTypesMap;
protected LoggerWrapper logger;
protected MirPropertiesConfiguration configuration;
+ private static ImageCaptchaService captchaService = new DefaultManageableImageCaptchaService();
public MirBasicOpenPostingLocalizer() throws MirLocalizerFailure {
logger = new LoggerWrapper("Localizer.Basic.OpenPosting");
}
}
- public String generateOnetimePassword() {
- Random r = new Random();
- int random = r.nextInt();
-
- long l = System.currentTimeMillis();
-
- l = (l*l*l*l)/random;
- if (l<0) {
- l = l * -1;
- }
-
- String returnString = ""+l;
-
- return returnString.substring(5);
- }
-
public List getAntiAbuseFilterTypes() {
return Collections.unmodifiableList(filterTypes);
}
filterTypesMap.put(aFilterType.getName(), aFilterType);
filterTypes.add(aFilterType);
}
-}
+
+ public Captcha generateCaptcha(final String aSessionId) {
+ final BufferedImage challenge = captchaService.getImageChallengeForID(aSessionId);
+
+ return new Captcha() {
+
+ public BufferedImage getChallenge() {
+ return challenge;
+ }
+
+ public boolean validateAnswer(String anAnswer) {
+ return captchaService.validateResponseForID(aSessionId, anAnswer).booleanValue();
+ }
+ };
+ }
+
+}
\ No newline at end of file