ユーザー認証


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

セッションを使ったカスタム認証

  • ユーザー名とパスワードはHTMLページ上のフォームを使う
  • ユーザー管理はデータベースを利用する
  • 送られてきたユーザー名とパスワードでデータベースを検索して認証する
  • 認証が通った場合はセッションに記録する
  • 保護されているページではセッションの有無をチェックする
  • ログアウト機能を付ける

認証が行われているかどうかはセッションを使い、「login」データがあるかどうかをチェックする。
HttpSession session = request.getSession(false);

if (session == null){
    /* まだ認証されていない */
    session = request.getSession(true);
    response.sendRedirect("/auth/Login");
}else{
    Object loginCheck = session.getAttribute("login");
    if (loginCheck == null){
        /* まだ認証されていない */
        response.sendRedirect("/auth/Login");
    }
}
ログイン画面に飛ばした後で、本来アクセスしたかったURLへ移動させるため、どのサーブレットに対してアクセスしようとしていたのかを保存しておく必要がある。本来アクセスしようとしたURLを取得したらセッションの「target」に保存する。
String target = request.getRequestURL();
session.setAttribute("target", target);
URL http://localhost:8080/auth/CustomAuth1
アプリケーション配置場所 c:\servlet-sample\auth\
web.xmlファイル c:\servlet-sample\auth\WEB-INF\web.xml
コンテキストファイル C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost\auth.xml

セッションを使ったカスタム認証(ログアウト処理)

ログアウトの処理は、セッションを無効にすればいいだけ。
HttpSession session = request.getSession(true);
session.invalidate();
response.sendRedirect("/auth/Login");