Code source wiki de Intégration d'un captcha dans une page Adélia Web
Modifié par Julien EYMERY le 2015/07/07 10:12
Afficher les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
| 1 | Il existe plusieurs librairies de gestion de captcha en Java (rechercher "java captcha" sur Google). | ||
| 2 | |||
| 3 | Nous allons utiliser pour cet exemple, la librairie Kaptcha : [[http://code.google.com/p/kaptcha/>>url:http://code.google.com/p/kaptcha/]] | ||
| 4 | |||
| 5 | L'exemple se base sur la version 2.3. | ||
| 6 | ((( | ||
| 7 | == Intégration du captcha dans la page Adélia Web : == | ||
| 8 | ))) | ||
| 9 | |||
| 10 | [[Voici un exemple.>>attach:CAPTCHA_ID_WPAGE1.html]] | ||
| 11 | |||
| 12 | Dans le formulaire, ajouter un tag IMG qui servira à afficher l'image du captcha : | ||
| 13 | |||
| 14 | |||
| 15 | {{code language="xml" language="xml"}} | ||
| 16 | <img id="captchaImg" src="../kaptcha.jpg" /> | ||
| 17 | {{/code}} | ||
| 18 | |||
| 19 | |||
| 20 | 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. | ||
| 21 | |||
| 22 | Ajouter un champ de saisie Adélia qui servira à saisir la valeur du captcha : | ||
| 23 | |||
| 24 | |||
| 25 | {{code language="xml" language="xml"}} | ||
| 26 | <adelia:entryfield type="ALPHA" length="5" ><input type="text" name="CHS_1" id="CHS_1" size="5" maxlength="5" /></adelia:entryfield> | ||
| 27 | {{/code}} | ||
| 28 | |||
| 29 | |||
| 30 | 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. | ||
| 31 | ((( | ||
| 32 | == Test du captcha dans le code L4G == | ||
| 33 | ))) | ||
| 34 | |||
| 35 | Ajouter la classe sampleCaptcha dans le répertoire WEB-INF\classes : | ||
| 36 | |||
| 37 | [[sampleCaptcha.class>>attach:sampleCaptcha.class]] | ||
| 38 | |||
| 39 | [[sampleCaptcha.java>>attach:sampleCaptcha.java]] | ||
| 40 | |||
| 41 | |||
| 42 | Attention : cette classe a été compilée avec un JDK 1.5. | ||
| 43 | |||
| 44 | Dans le L4G, ajouter : | ||
| 45 | |||
| 46 | |||
| 47 | {{code language="none"}} | ||
| 48 | appeler_class 'sampleCaptcha' 'checkCaptcha' *PAGE_CONTEXTE CHS_1 captchaOk | ||
| 49 | si captchaOk = *faux | ||
| 50 | * le texte saisi par l'utilisateur (valeur de CHS_1) ne correspond pas à la valeur du captcha affiché | ||
| 51 | sinon | ||
| 52 | * saisie correcte | ||
| 53 | fin | ||
| 54 | {{/code}} | ||
| 55 | |||
| 56 | ((( | ||
| 57 | == Configuration de la Web application : [[http://code.google.com/p/kaptcha/wiki/HowToUse>>url:http://code.google.com/p/kaptcha/wiki/HowToUse]] == | ||
| 58 | ))) | ||
| 59 | |||
| 60 | Ajouter la bibliothèque kaptcha dans WEB-INF\lib : | ||
| 61 | |||
| 62 | [[kaptcha-2.3.jar>>attach:kaptcha-2.3.jar]] | ||
| 63 | |||
| 64 | [[kaptcha-2.3-jdk14.jar>>attach:kaptcha-2.3-jdk14.jar]] | ||
| 65 | |||
| 66 | |||
| 67 | Utiliser Kaptcha-2.3.jar si vous avez installé un JDK 1.5 (ou 1.6). | ||
| 68 | |||
| 69 | Ajouter dans le fichier web.xml la déclaration de la servlet de génération de l'image du captcha : | ||
| 70 | |||
| 71 | |||
| 72 | {{code language="xml" language="xml"}} | ||
| 73 | <servlet> | ||
| 74 | <servlet-name>Kaptcha</servlet-name> | ||
| 75 | <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class> | ||
| 76 | </servlet> | ||
| 77 | <servlet-mapping> | ||
| 78 | <servlet-name>Kaptcha</servlet-name> | ||
| 79 | <url-pattern>/kaptcha.jpg</url-pattern> | ||
| 80 | </servlet-mapping> | ||
| 81 | |||
| 82 | {{/code}} | ||
| 83 | |||
| 84 | |||
| 85 | Dans la fenêtre de configuration de Tomcat, rajouter **-Djava.awt.headless~=true** dans les options Java. | ||
| 86 | |||
| 87 | Il est possible de configurer un certain nombre de paramètres dans la génération de l'image du captcha : | ||
| 88 | [[http://code.google.com/p/kaptcha/wiki/ConfigParameters>>url:http://code.google.com/p/kaptcha/wiki/ConfigParameters]] | ||
| 89 | |||
| 90 | 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. | ||
| 91 | |||
| 92 | ((( | ||
| 93 | == (% style="line-height: 1.5;" %)Articles connexes(%%) == | ||
| 94 | ))) | ||
| 95 | |||
| 96 | 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. | ||
| 97 | |||
| 98 | {{liveData sort="doc.date:desc" source="liveTable" properties="doc.title,doc.date,doc.author" description="Recently updated" limit="5" filters="tag=web captcha" sourceParameters="translationPrefix=platform.index."}}{{/liveData}} | ||
| 99 |