つかびーの技術日記

(情報)工学修士, 元SIer SE, 現Web系 SEの技術blogです。Scala, Java, JS, TS, Python, Ruby, AWS, GCPあたりが好きです。

パスワードを適切に管理したサンプルシステム(その3)

      2013/09/15

パスワードを適切に管理したサンプルシステム(その2)の続き。

1回目と2回目で大きくパスワードのハッシュ化とメールによるリセットを実装しました。今回は残ったところを実装して実際に動くサービスの公開まで掲載します。今回はセキュリティ要素少なめです。

要件(TODO)

  1. 次のページを用意する。ログインページ(TOP)、ユーザ登録ページ、メニューページ、パスワード再発行依頼ページ、パスワード再発行ページ、ログイン履歴ページ。
  2. リンクと画面遷移先はフィーリングで設定する。
  3. ログイン履歴ページは過去にログインした全ての日付とIPアドレス、ホスト名を表示する。
  4. メニューページ、ログイン履歴ページはログイン済みでないとアクセスできないこととする。

ログイン履歴は運営するサービスの種類や方針にもよるけど、できれば入れておきたいです。これがあると不正ログイン、パスワード漏洩の可能性に気づくことができます。シンプルさを重視してサービスに機能(ログイン履歴機能)を追加しないという選択肢もありだとは思うし、お遊びに近いサービスであれば別に不要だと思う。けど個人的にはあったほうがいいです。

認証と認可(要件4)

これはwicket-auth-rolesを利用します。以下のサイトが参考になりました。

wicket-auth-rolesのまとめ – その1

アノテーションを付加するだけで良い、というところが楽でいいです。

公開

Eclipseでwarをエクスポートしてデプロイ。以下のURLに配置しました。

http://tsukaby.com/LoginSystem

動作スクリーンショット

大体以下のような感じです。

一通り、動作するまでには至ったけど、このままではまだいくつか問題があるので、今後はこれを改良して行きます。

 - セキュリティ