クラス PasswordValidationCallback

java.lang.ObjectSE
jakarta.security.auth.message.callback.PasswordValidationCallback
実装されているすべてのインターフェース:
CallbackSE

public class PasswordValidationCallback extends ObjectSE implements CallbackSE
PasswordValidation のコールバック。

このコールバックは、それを含むランタイムのパスワード検証機能を使用するために認証モジュールで使用できます。このコールバックは通常、validateRequest 処理中に ServerAuthModule によって呼び出されます。

このコールバックにより、次のアクションが実行されます。

  1. 資格情報を検証する
  2. 検証された場合は呼び出し元プリンシパルを設定します (概念的には CallerPrincipalCallback と同じです)
  3. 検証され、グループが利用可能な場合は、グループを設定します (概念的には GroupPrincipalCallback と同じです)
以下のコードは、CallbackHandler が提供された Jakarta Authentication 実装によって PasswordValidationCallback がどのように実装されるかを示す仮説的な例を示しています。
 
 protected void processPasswordValidation(PasswordValidationCallback pwdCallback) {

    // 1. Validate the credentials
    Caller caller = ContainerSpecificStore.validate(pwdCallback.getUsername(), getPassword(pwdCallback));

    if (caller != null) {
        // 2. If validated set caller principal, just like CallerPrincipalCallback does
        processCallerPrincipal(new CallerPrincipalCallback(pwdCallback.getSubject(), caller.getCallerPrincipal()));

        if (!caller.getGroups().isEmpty()) {
            // 3. If validated and groups available set groups, just like GroupPrincipalCallback does
            processGroupPrincipal(new GroupPrincipalCallback(pwdCallback.getSubject(), caller.getGroupsAsArray()));
        }

        pwdCallback.setResult(true);
    }
 }
 
 
この例では次の点に注意してください。
  • processCallerPrincipal は、CallbackHandler が CallerPrincipalCallback を処理する方法を表します。
  • processGroupPrincipal は、CallbackHandler が GroupPrincipalCallback を処理する方法を表します。
  • Caller および ContainerSpecificStore は、仮想的な実装固有の型です。
  • コンストラクターの詳細

    • PasswordValidationCallback

      public PasswordValidationCallback(SubjectSE subject, StringSE username, char[] password)
      PasswordValidationCallback を作成します。
      パラメーター:
      subject - 認証対象
      username - 認証するユーザー名
      password - ユーザーのパスワード。null の可能性があります。
  • メソッドの詳細

    • getSubject

      public SubjectSE getSubject()
      件名を取得します。
      戻り値:
      件名。
    • getUsername

      public StringSE getUsername()
      ユーザー名を取得します。
      戻り値:
      ユーザー名。
    • getPassword

      public char[] getPassword()
      パスワードを取得します。

      このメソッドはパスワードへの参照を返すことに注意してください。配列のクローンが作成された場合、不要になったパスワード情報をゼロにするのは呼び出し側の責任です。

      戻り値:
      パスワード。null でもかまいません。
    • clearPassword

      public void clearPassword()
      パスワードをクリアします。
    • setResult

      public void setResult(boolean result)
      認証結果を設定します。
      パラメーター:
      result - 認証が成功した場合は true、それ以外の場合は false
    • getResult

      public boolean getResult()
      認証結果を取得します。
      戻り値:
      認証が成功した場合は true、それ以外の場合は false