Intégration d'un captcha dans une page Adélia Web

Last modified by Julien EYMERY on 2015/07/07 10:12

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

Les articles connexes apparaissent ici en fonction des étiquettes que vous avez sélectionnées. Cliquez pour modifier la macro et ajouter ou modifier des étiquettes.