Kaptcha
Kaptcha es una librería Java para implementar un sistema Captcha.
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.
Integración en una aplicación web Java
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!