Kaptcha

De Dos Ideas.
Revisión del 17:24 7 dic 2009 de Germandt (discusión | contribuciones) (Ver también)
Saltar a: navegación, buscar

Introducción

Captcha es el acrónimo de Completely Automated Public Turing test to tell Computers and Humans Apart (Prueba de Turing pública y automática para diferenciar máquinas y humanos).

Ejemplo captcha.jpg


Usar Kaptcha en un proyecto web es fácil. Todo lo que se necesita es agregar el jar al proyecto, hacer una referencia al servlet del kaptcha en el web.xml y luego validar el dato submiteado en el form con la sesión del servlet que generó el captcha.

Detalles

Aquí los detalles de como integrar Kaptcha a tu aplicación.

Poner el .jar de Kaptcha apropiado (dependiendo de tu JDK) en WEB-INF/lib de tu proyecto. Poner el tag de la imagen en la página web (checkeando que coincida el path de .jpg con el url-pattern que esta definido en el web.xml)

<form action="submit.action">

   <img src="kaptcha.jpg" /> <input type="text" name="kaptcha" value="" />

</form>

Poner la referencia en tu web.xml (cheando que el url-pattern se el mismo que el agregado en la página web)

<servlet>

       <servlet-name>Kaptcha</servlet-name>
       <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>

</servlet> <servlet-mapping>

       <servlet-name>Kaptcha</servlet-name>
       <url-pattern>/kaptcha.jpg</url-pattern>

</servlet-mapping>

Agregar en el código que hace la validación: String kaptchaExpected = (String)request.getSession()

   .getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);

String kaptchaReceived = request.getParameter("kaptcha");

if (kaptchaReceived == null || !kaptchaReceived.equalsIgnoreCase(kaptchaExpected)) {

   setError("kaptcha", "Invalid validation code.");

}

Eso es todo!

Fuente: http://code.google.com/p/kaptcha/wiki/HowToUse

Ver también