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

Show last authors
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