JDBCRealm で「User Expired Password」を使用するには?
これを行うことができますか?
JDBCRealm は、この種の機能を提供しません。自分で書き上げる必要があります。webb アプリ用に 1 つ作成しました。私は休止状態を使用していますが、手順はかなり一般的であるため、必須ではありません。
<c:set var="checkExpired" value="true" scope="session" />
次に、index.jsp に checkExpired を読み取るコードを少し追加し、true に設定されている場合は、日付チェックを実行し、checkExpired の値を false に設定します。パスが最後に変更された (データベースに保存されている) 日付を取得し、現在の日付と比較します。90 日以上経過している場合は、ユーザーをパスワード変更 jsp ページにリダイレクトします。
私の changepass.jsp には、ユーザーが新しいパスワードを入力するフォームが含まれています。フォームのアクションは、パスワードの変更を処理するサーブレットを呼び出すことです。
パス変更サーブレットはパスワードを検証し、それをデータベースに書き込み、データベースの last_pass_change フィールドを現在の日付に更新します。最後に、index.jsp にリダイレクトします。
さて、これはまったくエレガントではありませんが (少なくとも私見では)、それは認証に JDBCRealm を使用するときに支払う代償です。必要に応じて、サーバーの機能を拡張したり、独自のレルムを提供したりできます。ただし、これは非常に些細な作業のように思えます。
幸運を、
ダモ