Mrz 10

Captchas mit JSF? Tomahawk t:captcha !

Veröffentlicht von Daniel

Wer sich schonmal gefragt hat, wie man auf eine einfache Art und Weise ein Captcha auf einer JSF-Seite integrieren kann, dem seien die MyFaces Tomahawk Komponenten ans Herz gelegt.

Leider hatte ich einige Schwierigkeiten bei dem Versuch, das Tag t:captcha zu benutzen, da die Abhängigkeit zum Batik-Toolkit von Apache fehlten. Der Versuch die aktuelle Distribution (stable) oder einen der nightly Builds von Batik zu verwenden schlug fehl.

Für denjenigen, der auch Probleme mit der Klasse PNGEncoder hat und sich wundert, warum das Package dieser Klasse in den aktuellen Batik Versionen zwar vorhanden, aber leer ist, hier ein kleiner Tipp, mit dem Alles ganz einfach ist:

Benutz die Tomahawk Examples! :-)

Leider bin ich auch nicht direkt drauf gekommen, aber das Leben kann so einfach sein: Examples runterladen, WAR-File endpacken und alle Batik JARs aus WEB-INF/lib kopieren, Fertig.
Schon funktioniert das Captcha, wenn man den Tag

 XML |  copy code |? 
1
<t:captcha/>

einbindet:

Falls es dann noch Probleme, bei dem Verständnis des Attributes captchaSessionKeyName gibt, hier ein kleiner Hinweis (wieder ersichtlich aus den Tomahawk Examples):

In diesem Property wird der Key angegeben, unter dem der generierte Code in die Session geschrieben wird. Somit erhält man Zugriff auf den angezeigten String und kann diesen dann mit der Eingabe des Benutzers vergleichen.

 XML |  copy code |? 
1
&lt;!-- Schreibt den generierten Captcha-String in die Session. 
2
Das Session-Attribut ist der Wert von 
3
captchaBean.getSessionKeyName() -->
4
<t:captcha captchasessionkeyname="#{captchaBean.sessionKeyName}" />

Wenn man diese zwei Dinge beachtet, ist es ganz einfach ein Captcha in seiner JSF-Anwendung zu benutzten. Zugegeben, dieses Captcha ist vielleicht nicht das sicherste, allerdings ist es besser als nichts. Außerdem sollte es hier möglich sein, die Klasse, die das Bild erzeugt gegen eine eigene Implementierung aus zu tauschen, um somit ein besseres Captcha zu erstellen.

Hinterlasse eine Nachricht

Du musst angemeldet sein um ein Kommentar abzugeben.

Lokalisiert von Hashi. Ein Mitglied der Mediengeneration.