Skip to content

gadgetism/recaptcha

Repository files navigation

Recaptcha module for Play!

Integrate challenge-response reCaptcha tests in 2 minutes.

What is a Captcha?

A Captcha is a type of challenge-response test used in computing to ensure that the response is not generated by a computer. Captcha are typically used to fight spam and validate that a human is using the system.

sample

Features

Prerequisites

The modules requires the recapctha public/private key for your domain.

  1. Please go to http://www.google.com/recaptcha
  2. Register and create a site for your domain
  3. Write down the generated public and private keys

Installation

  1. run ‘play install recaptcha’ and let Play! install the module for you
  2. open your application conf/application.conf and add
    1. module.recaptcha=${play.path}/modules/recaptcha-{version}
    2. ugot.recaptcha.privateKey=YOUR_RECAPTCHA_PRIVATE_KEY
    3. ugot.recaptcha.publicKey=YOUR_RECAPTCHA_PUBLIC_KEY

Make sure to replace {version} and KEYS with their appropriate values

How to Use

Well it’s kind of easy, the module offers two integration points:

  1. a tag to render the captcha: #{ugot.recaptcha /}
  2. an annotation to validate the result: @Recaptcha

Generating the captcha

Play being an MVC framework, we need to define an action in the controller and its associated page.
Edit file app/controller/Application.java as follows:

bc.
public class Application extends Controller {
public static void index() {
render();
}
}

Create a file `app/view/Application/index.html`

bc.
#{extends ‘main.html’ /}
#{set title:‘Test reCaptcha’ /}
#{form @save()} My sample captcha!


#{ugot.recaptcha theme:“red”, tabindex:1/}

#{ifError ’recaptcha’}



  • #{error ‘recaptcha’/}

#{/ifError}


#{/form}

Validating the captcha

Edit file app/controller/Application.java and add the following:

import ugot.recaptcha.Recaptcha;

 public class Application extends Controller {
        
  public static void save(@Recaptcha String recaptcha) {

     if(validation.hasErrors()) {
        System.out.println("ERRORS found - invalid captcha");
        validation.keep();
      }
      else {
        System.out.println("There are no errors, the catcha was validated");
      }
            
      // no matter what, redisplay the same page
      index();
   }
 }

Testing the captcha

Start play and launch a browser to http://localhost:9000/
Done!
You may find the sample app bundled with the module

Tag parameters

The ugot.recaptcha tag takes the following parameters

theme: The theme to use. Possible values are:red (default), white, blackglass, clean
tabindex: Sets a tabindex for the reCAPTCHA text box. If other elements in the form use a tabindex, this should be set so that navigation is easier for the user
lang: A two character country code. By default the module will ask Play to provide the negotiated language. possible values are: en,nl,fr,de,pt,ru,es,tr

See the reCaptcha documentation for more details.

Credits

This module is based on the Recaptcha java library.
Author: Olivier Refalo

About

Easy integration of http://www.google.com/recaptcha with the playframework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published