JAAS

com.sun.security.auth.module
クラス KeyStoreLoginModule

java.lang.Object
  上位を拡張 com.sun.security.auth.module.KeyStoreLoginModule
すべての実装されたインタフェース:
LoginModule

public class KeyStoreLoginModule
extends Object
implements LoginModule

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

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

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


コンストラクタの概要
KeyStoreLoginModule()
           
 
メソッドの概要
 boolean abort()
           LoginContext の認証全体が失敗した場合 (関連する REQUIRED、REQUISITE、SUFFICIENT、および OPTIONAL の各 LoginModule が失敗した場合) に呼び出されます。
 boolean commit()
          認証プロセスをコミットする抽象メソッドです (フェーズ 2)。
 void initialize(Subject subject, CallbackHandler callbackHandler, Map<String,?> sharedState, Map<String,?> options)
          この LoginModule を初期化します。
 boolean login()
          ユーザを認証します。
 boolean logout()
          ユーザをログアウトさせます。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

KeyStoreLoginModule

public KeyStoreLoginModule()
メソッドの詳細

initialize

public void initialize(Subject subject,
                       CallbackHandler callbackHandler,
                       Map<String,?> sharedState,
                       Map<String,?> options)
この LoginModule を初期化します。

定義:
インタフェース LoginModule 内の initialize
パラメータ:
subject - 認証を受ける Subject

callbackHandler - エンドユーザとの通信 (ユーザ名とパスワードの入力など) に使用される CallbackHandlernull の場合もある

sharedState - 共有 LoginModule の状態

options - この LoginModule 用にログイン Configuration で指定されたオプション

login

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

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

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

LoginException

commit

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

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

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

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

abort

public boolean abort()
              throws LoginException

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

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

ロードされた KeyStore のプロバイダが java.security.AuthProvider を拡張すると、プロバイダの logout メソッドが呼び出されます。

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

logout

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

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

ロードされた KeyStore のプロバイダが java.security.AuthProvider を拡張すると、プロバイダの logout メソッドが呼び出されます。

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

JAAS