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 :

Voici un exemple.

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 :

sampleCaptcha.class

sampleCaptcha.java


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 :

kaptcha-2.3.jar

kaptcha-2.3-jdk14.jar


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