以前、Captchaについて記事を書きました。
その時はJCaptchaを使っていましたが、もっと簡単に便利な奴を見つけたのでそっちの記事を書きます。笑
kaptchaと言うGoogle codeが提供する画像認証ライブラリです。
Apache License 2.0らしいです。
仕上がりはこんな感じ↓今回はSAStruts + Mayaa の環境でやりました。
まず、http://code.google.com/p/kaptcha/よりファイルをダウンロードします。
(執筆時はkaptcha-2.3.zipでした。)
これを解凍するとkaptcha-2.3.jarってのが出てくるので、
そいつを該当のJavaプロジェクトのライブラリにしてあげます。

さて、お次はweb.xmlです。
下記の文を追記します。
<servlet>お次は呼出方法ですね。
<servlet-name>Kaptcha</servlet-name>
<servlet-class>
com.google.code.kaptcha.servlet.KaptchaServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Kaptcha</servlet-name>
<url-pattern>/kaptcha</url-pattern>
</servlet-mapping>
今回はMayaaで作ったので下記のような感じになります。
<html:img src="/kaptcha" />早い話がHTMLのイメージタグで「/kaptcha」を呼んでやるだけです。
<img src="/kaptcha" />こんな風に。
srcはweb.xmlに記載した<url-pattern>を参照出来るようにすれば大丈夫。
お次はActionクラス。
strutsでない場合は該当のServletクラスです。
String kaptchaDate = (String) request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);こんな風にしてあげると表示したKaptchaの文字情報が取れます。
あとは、入力してもらったテキストと比較してあげるだけです。
if (inputKaptchaData.equalsIgnoreCase(kaptchaDate ))) {ってな具合です。
System.out.println("OK!!");
}
いや~設置も簡単だしこれは便利です。
さほど文字の解読が難解ではないので、高性能な解読プログラムで解読出来ちゃうかも・・・?しれませんが。
ちなみに今回、参考にさせて頂いたサイトはこちらです。
コメントする