Een kaptcha binnen Adelia Web
Hoe neem je een kaptcha op binnen een Adelia Web applicatie? Dit is een controle-veld om de browser er van te overtuigen dat het formulier niet door een programma wordt ingevuld, zoals je veel op internet ziet. Zie bijvoorbeeld de volgende:
Voor dit voorbeeld maken we gebruiken van de kaptcha bibliotheek van Google : http://code.google.com/p/kaptcha/
1. Integreer de kaptcha binnen de Adelia Web Pagina
Neem een image-tag in je formulier op die de kaptcha-afbeelding zal tonen:
<img id="captchaImg" src="/../kaptcha.jpg" />
Opmerking : de URL ../kaptcha.jpg verwijst niet naar een bestaande afbeelding, maar zal door de kaptcha servlet gegenereerd worden.
Voeg een Adelia invulveld toe waarin de waarde kan worden ingevoerd door de gebruiker:
<adelia:entryfield type="ALPHA" length="5">
<input type="text" name="CHS_1" id="CHS_1" size="5" maxlength="5" />
</adelia:entryfield>
Opmerking : Standaard genereert de gebruikte kaptcha bibliotheek een kaptcha van 5 tekens.
Test de kaptcha
2. Test de kaptcha in je 4GL code:
Voeg de class sampleCaptcha toe in de directory WEB-INF\classes.
Voeg vervolgens in de Adelia Web 4GL de volgende call toe :
CALL_CLASS 'sampleCaptcha' 'checkCaptcha' *PAGE_CONTEXTE CHS_1 wKaptchaOk
IF NOT wKaptchaOk
*-- de ingevoerde tekst is niet gelijk aan die in de afbeelding
ELSE
*-- ok
END
3. Configuratie van de Web applicatie : http://code.google.com/p/kaptcha/wiki/HowToUse
Voeg de kaptcha-bibliotheek toe in de directory WEB-INF\lib :
Gebruik Kaptcha-2.3.jar als je JDK 1.5 of 1.6 hebt geinstalleerd.
Voeg in het bestand web.xml de declaratie van de servlet toe die de afbeelding zal genereren:
<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>
Neem binnen de Tomcat configuratie de regel -Djava.awt.headless=true.
Het is mogelijk een aantal parameters voor de kaptcha afbeelding op te geven, zie http://code.google.com/p/kaptcha/wiki/ConfigParameters