モジュール jdk.security.auth

クラスKeyStoreLoginModule

  • すべての実装されたインタフェース:
    LoginModule

    public class KeyStoreLoginModule
    extends Object
    implements LoginModule
    キーストアの別名を入力を要求して、別名のプリンシパルと資格を使用してサブジェクトを生成する、JAASログイン・モジュールを提供します。 サブジェクトのプリンシパルにある別名の資格で最初の証明書のサブジェクトの識別名に対するX500Principalと、サブジェクトの公開資格にある別名の証明書パスを格納します。また、証明書が別名の証明書パスで最初の証明書であり、かつ非公開キーがサブジェクトの非公開資格にある別名の非公開キーであるX500PrivateCredentialも格納します。

    構成ファイルでは、次のオプションを使用できます。

    keyStoreURL
    キーストアの位置を指定するURLです。 デフォルトでは、user.homeシステム・プロパティで指定したディレクトリ内の.keystoreファイルを示すURLです。 このURLからの入力ストリームは、KeyStore.loadメソッドに渡されます。 KeyStore.loadメソッドにnullストリームを渡す必要がある場合は、「NONE」を指定できます。 「NONE」は、キーストアが、たとえばハードウェア・トークン・デバイスに置かれている場合に指定します。
    keyStoreType
    キーストアのタイプです。 指定しない場合のデフォルトは、KeyStore.getDefaultType()を呼び出した結果です。 種類が「PKCS11」の場合、keyStoreURLは「NONE」でなければならず、privateKeyPasswordURLを指定することはできません。
    keyStoreProvider
    キーストアのプロバイダです。 指定しない場合は、プロバイダを検索する標準的な検索順序が使用されます。
    keyStoreAlias
    キーストア内の、ログインするための別名です。 コールバック・ハンドラが指定されていない場合は必須になります。 デフォルト値はありません。
    keyStorePasswordURL
    キーストアのパスワードの位置を指定するURLです。 コールバック・ハンドラが指定されておらず、protectedがfalseの場合は必須になります。 デフォルト値はありません。
    privateKeyPasswordURL
    別名の非公開キーにアクセスするために必要となる特定の非公開キーのパスワードの位置を指定するURLです。 この値が必要であっても指定しない場合は、キーストアのパスワードが使われます。
    protected
    キーストアに別個の保護された認証パス(スマート・カードに接続された専用のPINパッドなど)がある場合は、この値を「true」設定する必要があります。 デフォルトでは「false」に設定されます。 「true」の場合、keyStorePasswordURLおよびprivateKeyPasswordURLを指定することはできません。

    • コンストラクタの詳細

      • KeyStoreLoginModule

        public KeyStoreLoginModule()
    • メソッドの詳細

      • initialize

        public void initialize​(Subject subject,
                               CallbackHandler callbackHandler,
                               Map<String,​?> sharedState,
                               Map<String,​?> options)
        このLoginModuleを初期化します。
        定義:
        initialize、インタフェースLoginModule
        パラメータ:
        subject - 認証対象のSubject
        callbackHandler - エンド・ユーザーとの通信(ユーザー名とパスワードの入力など)に使用されるCallbackHandlernullの場合もある。
        sharedState - 共有LoginModuleの状態。
        options - このLoginModule用にログインConfigurationで指定されたオプション。
      • login

        public boolean login()
                      throws LoginException
        ユーザーを認証します。

        キーストアの別名と関連するパスワードを取得します。 入力された別名の主体と資格をキーストアから取得します。

        定義:
        login、インタフェースLoginModule
        戻り値:
        常にtrue (このLoginModuleを無視してはならない)。
        例外:
        FailedLoginException - 認証に失敗した場合。
        LoginException - 認証に失敗した場合
      • commit

        public boolean commit()
                       throws LoginException
        認証プロセスをコミットする抽象メソッドです(フェーズ2)。

        LoginContextの認証全体が成功した場合(関連するREQUIRED、REQUISITE、SUFFICIENT、およびOPTIONALの各LoginModuleが成功した場合)に呼び出されます。

        このLoginModule自体の認証が成功したかどうかをチェックするには、loginメソッドによって保存された非公開状態を取得します。認証が成功した場合、サブジェクトのプリンシパルにある別名の資格で最初の証明書のサブジェクトの識別名に対するX500Principal、サブジェクトの公開資格にある別名の証明書パス、別名の証明書パス内の最初の証明書とサブジェクトの非公開資格にある別名の非公開キーを持つ X500PrivateCredentialが、このメソッドにより関連付けられます。 このLoginModule自体の認証が失敗した場合は、当初保存された状態を削除します。

        定義:
        commit、インタフェースLoginModule
        戻り値:
        このLoginModule自体のログインとコミットの試みが成功した場合はtrue、そうでない場合はfalse。
        例外:
        LoginException - コミットに失敗した場合
      • abort

        public boolean abort()
                      throws LoginException
        このメソッドは、LoginContextの全体の認証に失敗した場合に呼び出されます。(関連するREQUIRED、REQUISITE、SUFFICIENT、およびOPTIONALの各LoginModuleが失敗した場合)。

        このLoginModule自体の認証が成功した場合は(loginメソッドとcommitメソッドによって保存された非公開状態を取得して調べる)、当初保存された状態を整理します。

        ロードされたキーストアのプロバイダがjava.security.AuthProviderを拡張する場合は、プロバイダのlogoutメソッドが呼び出されます。

        定義:
        abort、インタフェースLoginModule
        戻り値:
        このLoginModule自体のログインやコミットの試みが失敗した場合はfalse、そうでない場合はtrue。
        例外:
        LoginException - 中止に失敗した場合。
      • logout

        public boolean logout()
                       throws LoginException
        ユーザーをログアウトさせます。

        このメソッドは、commitメソッドによって追加された主体、公開資格、および非公開資格を削除します。

        ロードされたキーストアのプロバイダがjava.security.AuthProviderを拡張する場合は、プロバイダのlogoutメソッドが呼び出されます。

        定義:
        logout、インタフェースLoginModule
        戻り値:
        このLoginModuleを無視してはならないため、常にtrue。
        例外:
        LoginException - ログアウトに失敗した場合。