Diferencia entre revisiones de «Kaptcha»
(→Detalles) |
(→Integración en una aplicación web Java) |
||
Línea 13: | Línea 13: | ||
<code xml> | <code xml> | ||
<form action="submit.action"> | <form action="submit.action"> | ||
− | <img src="kaptcha.jpg" /> <input type="text" name="kaptcha" value="" /> | + | <img src="kaptcha.jpg" /> |
+ | <input type="text" name="kaptcha" value="" /> | ||
</form> | </form> | ||
</code> | </code> | ||
Línea 28: | Línea 29: | ||
<url-pattern>/kaptcha.jpg</url-pattern> | <url-pattern>/kaptcha.jpg</url-pattern> | ||
</servlet-mapping> | </servlet-mapping> | ||
− | |||
</code> | </code> | ||
Revisión del 17:35 7 dic 2009
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!