クラス 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