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 資格にある別名の証明書のパスを格納します。また、証明書が別名の証明書のパスで最初の証明書であり、かつ非公開鍵がサブジェクトの非公開資格にある別名の非公開鍵である 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 でない場合は必須になります。デフォルト値はありません。
privateKeyPasswordURL
別名の非公開鍵にアクセスするために必要となる特定の非公開鍵のパスワードの位置を指定する URL です。この値が必要であっても指定しない場合は、キーストアのパスワードが使われます。
protected
キーストアに別個の保護された認証パス (スマートカードに接続された専用の 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 - if the authentication fails

commit

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

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

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

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

abort

public boolean abort()
              throws LoginException

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

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

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

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

logout

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

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

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

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

JAAS