Java用の画像認証ライブラリー "kaptcha" を使ってみようと思う。
このエントリーを読んでいる人に、ここで言うところの「画像認証」が何だかを説明する必要はないと思うので、「画像認証」についての説明は省略。 面倒くさいから説明しないんじゃないだk(ry
kaptchaを利用すると、
- ↓このような認証画像を作成してくれて
- それと同時に、作成した認証画像に書かれた文字列をセッション変数に代入してくれます
ので、あとは、入力ボックスなどに入力された値と、セッション変数の値を比較すれば、認証ロジックの完成です。
数ある画像認証ライブラリーの中でも、なぜ kaptcha にしたのかというと・・・・・・「実装が簡単だから」。 実装してみて改めて思ったが、驚くほど簡単だった! kaptchaは、Google code で Apache License 2.0 で公開されているプロジェクトなのだが、その
プロジェクトページに、「他の画像認証ライブラリーよりも優れているよ」という記述があるので、気になる方は是非チェックして欲しい。
1. kaptchaをダウンロード前置きはこのくらいで、さっそくダウンロード!
ダウンロードページから最新版をダウンロードしよう。 これを書いた 2009年11月06日現在の最新版は、kaptcha v2.3 だったので、kaptcha-2.3.zip をダウンロードした。
言うまでもないと思うけど、ダウンロードしたzipファイルは解凍してくださいね。
2. jarを配置わざわざ説明するまでもないかもしれないけど、ダウンロードした kaptcha の jar を、J2EEプロジェクトの /WEB-INF/lib/ に、配置してくださいね。
3. 認証画像を表示してみようでは早速、認証画像を表示してみよう!web.xml に記述しましょ。 ↓こんな感じです。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<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>
</web-app>
ここでは、コンテキスト(context)直下の /Kaptcha.jpg にアクセスすると、認証画像が表示されるようにしました。 (というか、上記でダウンロードしたzipファイルに含まれているサンプルプログラムそのままです。)
tomcat とかのアプリケーションサーバーにデプロイして、早速アクセスしてみましょう。 ローカルのtomcatで試しているのであれば、 http://localhost:8080/
context/Kaptcha.jpg にアクセスしましょう。 (URLは個人個人の環境にあわせてくださいね。 URLの context もちゃんと書き換えてくださいね。)
どうですか? 表示されましたか?
次回へ続く。