BotDetect Spring 5 CAPTCHA Integration Quickstart

Unlike Recaptcha the Stalker -- BotDetect CAPTCHA works in China! Licensable source-code; self-hosted -- doesn't stalk -- nor does it slurp your form-data! Think: GDPR & LGPD!

1. Add BotDetect Java CAPTCHA Library Dependency

To manually add BotDetect Captcha library to classpath, copy the following three jar files from BotDetect Java download package to application's WEB-INF/lib folder:

  • botdetect-4.0.beta3.6.jar
  • botdetect-servlet-4.0.beta3.6.jar
  • botdetect-jsp20-4.0.beta3.6.jar

To share BotDetect Captcha among multiple applications, these BotDetect jar files above should be copied into 'lib' directory of web container or application server's domain.

2. Show a CAPTCHA Challenge on the Form

On the very top of the source file for the web form you want to protect against bots, put BotDetect taglib declaration:

<%@taglib prefix="botDetect" uri="https://captcha.com/java/jsp"%> 

To render Captcha in the form, add the following within <form> you want to protect against bots:

<!-- Adding BotDetect Captcha to the page --> 
<botDetect:captcha id="exampleCaptcha" userInputID="captchaCode"/> 

<input type="text" name="captchaCode" id="captchaCode"/> 
<input type="submit" name="submit" label="Submit" id="submit"/> 

3. Check User Input During Form Submission

When the form is submitted, the Captcha validation result must be checked in Spring Controller:

[...] 
import com.captcha.botdetect.web.servlet.Captcha; 

@Controller 
public class ExampleController { 
    
    [...] 
    
    @RequestMapping(value = "/validate", method = RequestMethod.POST) 
    public ModelAndView onSubmit(HttpServletRequest request, 
                        @Valid @ModelAttribute("example")BasicExample basicExample) 
    { 
        // validate the Captcha to check we're not dealing with a bot 
        Captcha captcha = Captcha.load(request, "exampleCaptcha"); 
        boolean isHuman = captcha.validate(basicExample.getCaptchaCode()); 
        
        if (isHuman) { 
          basicExample.setCaptchaCorrect("Correct code"); 
          basicExample.setCaptchaIncorrect(""); 
        } else { 
          basicExample.setCaptchaCorrect(""); 
          basicExample.setCaptchaIncorrect("Incorrect code"); 
        } 

        basicExample.setCaptchaCode(""); 
        
        return new ModelAndView("example", "basicExample", basicExample); 
    } 
        
} 

4. Configure your Application

Update your application configuration (web.xml) file.

<servlet> 
  <servlet-name>BotDetect Captcha</servlet-name> 
  <servlet-class>com.captcha.botdetect.web.servlet.CaptchaServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
  <servlet-name>BotDetect Captcha</servlet-name> 
  <url-pattern>/botdetectcaptcha</url-pattern> 
</servlet-mapping> 

In-Depth Spring MVC 5 CAPTCHA Instructions and Explanations

Detailed Spring MVC 5 Captcha instructions and explanations can be found in the Spring MVC 5 Captcha integration how to guide.


Please Note

BotDetect Java Captcha Library v4.0.Beta3.6 is an in-progress port of BotDetect 4 Captcha, and we need you to guide our efforts towards a polished product. Please let us know if you encounter any bugs, implementation issues, or a usage scenario you would like to discuss.