1

JDBCRealm で「User Expired Password」を使用するには?

これを行うことができますか?

4

1 に答える 1

1

JDBCRealm は、この種の機能を提供しません。自分で書き上げる必要があります。webb アプリ用に 1 つ作成しました。私は休止状態を使用していますが、手順はかなり一般的であるため、必須ではありません。

  1. 最初に、login.jsp (または任意の名前) でセッション属性「checkExpired」を設定します。
<c:set var="checkExpired" value="true" scope="session" />
  1. 次に、index.jsp に checkExpired を読み取るコードを少し追加し、true に設定されている場合は、日付チェックを実行し、checkExpired の値を false に設定します。パスが最後に変更された (データベースに保存されている) 日付を取得し、現在の日付と比較します。90 日以上経過している場合は、ユーザーをパスワード変更 jsp ページにリダイレクトします。

  2. 私の changepass.jsp には、ユーザーが新しいパスワードを入力するフォームが含まれています。フォームのアクションは、パスワードの変更を処理するサーブレットを呼び出すことです。

  3. パス変更サーブレットはパスワードを検証し、それをデータベースに書き込み、データベースの last_pass_change フィールドを現在の日付に更新します。最後に、index.jsp にリダイレクトします。

さて、これはまったくエレガントではありませんが (少なくとも私見では)、それは認証に JDBCRealm を使用するときに支払う代償です。必要に応じて、サーバーの機能を拡張したり、独自のレルムを提供したりできます。ただし、これは非常に些細な作業のように思えます。

幸運を、

ダモ

于 2011-04-01T13:29:33.137 に答える