Il existe plusieurs librairies de gestion de captcha en Java (rechercher "java captcha" sur Google).
Nous allons utiliser pour cet exemple, la librairie Kaptcha : http://code.google.com/p/kaptcha/
L'exemple se base sur la version 2.3.
Intégration du captcha dans la page Adélia Web :
Dans le formulaire, ajouter un tag IMG qui servira à afficher l'image du captcha :
<img id="captchaImg" src="../kaptcha.jpg" />
Note : L'URL ../kaptcha.jpg ne pointe pas sur une image réelle dans sur la servlet de génération de l'image du captcha.
Ajouter un champ de saisie Adélia qui servira à saisir la valeur du captcha :
<adelia:entryfield type="ALPHA" length="5" ><input type="text" name="CHS_1" id="CHS_1" size="5" maxlength="5" /></adelia:entryfield>
Note : Par défaut, la librairie Kaptcha génère un captcha de 5 caractères. Le contrôle de validité du captcha est insensible à la casse.
Test du captcha dans le code L4G
Ajouter la classe sampleCaptcha dans le répertoire WEB-INF\classes :
Attention : cette classe a été compilée avec un JDK 1.5.
Dans le L4G, ajouter :
appeler_class 'sampleCaptcha' 'checkCaptcha' *PAGE_CONTEXTE CHS_1 captchaOk si captchaOk = *faux * le texte saisi par l'utilisateur (valeur de CHS_1) ne correspond pas à la valeur du captcha affiché sinon * saisie correcte fin
Configuration de la Web application : http://code.google.com/p/kaptcha/wiki/HowToUse
Ajouter la bibliothèque kaptcha dans WEB-INF\lib :
Utiliser Kaptcha-2.3.jar si vous avez installé un JDK 1.5 (ou 1.6).
Ajouter dans le fichier web.xml la déclaration de la servlet de génération de l'image du captcha :
<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>
Dans la fenêtre de configuration de Tomcat, rajouter -Djava.awt.headless=true dans les options Java.
Il est possible de configurer un certain nombre de paramètres dans la génération de l'image du captcha :
http://code.google.com/p/kaptcha/wiki/ConfigParameters
Comme par exemple, les caractères utilisés et le nombre de caractères du captcha, les couleurs du texte et de fond de l'image, etc.
Articles connexes