37日目(MySQL5)
DAOパターンの復習
サーブレットの中にデータベース連携の記述をせず、1つレイヤーをかませる
いくつか定義方法があるが、Factoryパターンを利用
※サーブレットとMemberDaoImplとの依存を切れるメリットがある
Factoryパターンに必要なもの
①インターフェース
②①を実装したクラス
③DaoFactory(②のオブジェクト生成用クラス)
ユーザー認証
Tomcatが用意してくれてる認証とかは制約が多いため使用せず。
自分で認証を作る
- データベースにID、パスワード格納。
- ログインフォームを用意。
- ユーザーが入力したID、パスワードをサーブレットで受け取り、データベースに接続してそのID、パスワードが存在するかを確認
- 存在すれば認証OKのページを表示し、間違ってたらログインフォーム再表示
パスワードの管理
BCryptを使う
パスワードの暗号化
BCrypt.hashpw(pass, BCrypt.gensalt());
第1引数がパスワード、第2引数がソルト
暗号化されたパスワードと照合
BCrypt.checkpw(pass,"$2a$10…")
第1引数が暗号化前のパスワード、第2引数が暗号化後の値
あとはバリデーションのやり方など。
今日はここまで。
DAOパターンの復習から、JSP/サーブレットの連携などこれまでの振り返りが多め。
ありがたや。