秘密の質問と答え

pal-adminで、パスワードの再発行するときにこの辺の実装をどうするかを考えてみた。一応、他のサイトを参考にしつつ考えて、秘密の質問は選択の中からも選べるし、自由に入力もできるようにした。サイトによっては、選択式しかないものもあったりで、しかも、その質問も「ペットの名前は?」とか、あまり秘密の質問とは言えない。ペットの名前だって、辞書で総当たりでできそうな気もするし。秘密の質問って、答えが本人しか想定できないようなものじゃないと意味がないと思うのだよね(どっかのサイトにも書いてあったような気がするけど)。というわけで、pal-admin の選択肢のやつは、「ペットといえば?」とか、漠然としたやつにしてみた(もちろん、ユーザーが指定するのも可能です)。あとは、秘密の答えは、MessageDigest をかけて、保存するようにしておいた。そのまま保存しておくと、管理ツールからまる見えになるから、それはまずいし。あとは、パスワード再発行依頼するときに、メールアドレスを入力するのだけど、無効なメールアドレスでも、エラーにならず、秘密の質問をしてくるようにした。いくつか、他のサイトを試したのだけど、登録されてないメールアドレスだと、エラーと言って教えてくれるから、それはそれで良くない気がするし。そんな感じで、いろいろと考えてみたりした。

ポートレットフィルタの依存jar

Maven2 でポートレットフィルタを pom.xml に書いておくと、いらんものがいろいろとついてくる。というわけで、以下のようにするのが良い。あとで、Apache の方のやつは直しておこう。

<dependency>
<groupId>org.apache.portals.bridges</groupId>
<artifactId>portals-bridges-portletfilter</artifactId>
<version>1.0.3</version>
<exclusions>
<exclusion>
<groupId>logkit</groupId>
<artifactId>logkit</artifactId>
</exclusion>
<exclusion>
<groupId>avalon-framework</groupId>
<artifactId>avalon-framework</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>

Maven2だと、欲しくないjarまでどれかで依存していて、次々ひっぱてっくる。使いたいライブラリの pom.xml がきちんと書いてあればいいけど、それを期待するのは無理っぽい。まぁ、それ以外のもライブラリ的には依存しているけど、こっちはその機能を使わないときなども、こっちとしてはいらんものが入ることになるし。そんな感じで、いらんものを見つけたときには、–debug をつけて、ビルドして、誰がそのjarを含めているかチェックすれば良いのかね(もっと良い方法がある気もするけど、知りません・・・)。