モジュール java.base
パッケージ javax.security.auth.login

クラスConfiguration

java.lang.Object
javax.security.auth.login.Configuration
直系の既知のサブクラス:
ConfigFile

public abstract class Configuration extends Object
Configurationオブジェクトは、特定のアプリケーションで使用されるLoginModuleと、LoginModuleが呼び出される順番を指定します。

ログイン構成には次に示す情報が格納されます。 この例では、Configurationのデフォルト構文だけを表しています。 このクラスのサブクラス実装では別の構文を実装することもでき、ファイル、データベース、サーバーといった任意のソースからConfigurationを取得することもできます。

      Name {
            ModuleClass  Flag    ModuleOptions;
            ModuleClass  Flag    ModuleOptions;
            ModuleClass  Flag    ModuleOptions;
      };
      Name {
            ModuleClass  Flag    ModuleOptions;
            ModuleClass  Flag    ModuleOptions;
      };
      other {
            ModuleClass  Flag    ModuleOptions;
            ModuleClass  Flag    ModuleOptions;
      };
 

Configurationの各エントリは、アプリケーション名Nameでインデックス付けされており、そのアプリケーション用に構成されたLoginModuleのリストが含まれています。 LoginModuleは、その完全指定クラス名で指定されます。 認証は、モジュール・リストで指定した順番どおりに処理されます。 アプリケーションに固有エントリがない場合、otherの固有エントリがデフォルトになります。

Flagの値は、スタック内で認証を進める際の全体的な動作を制御します。 Flagの有効な値の説明とそれぞれのセマンティックスを次に示します。

      1) Required     - The LoginModule is required to succeed.
                      If it succeeds or fails, authentication still continues
                      to proceed down the LoginModule list.

      2) Requisite    - The LoginModule is required to succeed.
                      If it succeeds, authentication continues down the
                      LoginModule list.  If it fails,
                      control immediately returns to the application
                      (authentication does not proceed down the
                      LoginModule list).

      3) Sufficient   - The LoginModule is not required to
                      succeed.  If it does succeed, control immediately
                      returns to the application (authentication does not
                      proceed down the LoginModule list).
                      If it fails, authentication continues down the
                      LoginModule list.

      4) Optional     - The LoginModule is not required to
                      succeed.  If it succeeds or fails,
                      authentication still continues to proceed down the
                      LoginModule list.
 

すべてのRequired LoginModuleとRequisite LoginModuleが成功した場合にだけ、認証全体が成功します。 Sufficient LoginModuleが構成され成功した場合は、そのSufficient LoginModuleより前にRequired LoginModuleとRequisite LoginModuleが成功していれば認証全体が成功します。 アプリケーションでRequired LoginModuleもRequisite LoginModuleも構成されていない場合は、少なくとも1つのSufficientまたはOptional LoginModuleが成功する必要があります。

ModuleOptionsは、LoginModule固有の値のスペース区切りのリストで、ベースとなるLoginModuleに直接渡されます。 各オプションはLoginModule自身によって定義されており、内部の動作を制御します。 たとえば、LoginModuleでデバッグ/テスト機能をサポートするオプションを定義する場合を考えましょう。 Configurationにオプションを指定する正しい方法は、キーと値のペアdebug="true"を使用することです。 キーと値は等号記号(=)で区切り、値は二重引用符で囲む必要があります。 値に${system.property}という形式のStringを指定した場合は、システム・プロパティの値に展開されます。 LoginModuleで定義できるオプションの数に上限はありません。

前述の構文に基づくConfigurationエントリの例を次に示します。

 Login {
   com.sun.security.auth.module.UnixLoginModule required;
   com.sun.security.auth.module.Krb5LoginModule optional
                   useTicketCache="true"
                   ticketCache="${user.home}${/}tickets";
 };
 

このConfigurationでは、Loginというアプリケーションを指定しており、ユーザーは最初にcom.sun.security.auth.module.UnixLoginModuleで認証され、成功する必要があります。 UnixLoginModule認証に失敗しても、com.sun.security.auth.module.Krb5LoginModuleは呼び出されます。 これにより、失敗したソースを隠すことができます。 Krb5LoginModuleOptionalであるため、UnixLoginModule (Required)が成功した場合だけ、認証全体が成功します。

LoginModule固有のオプションであるuseTicketCache="true"ticketCache=${user.home}${/}tickets"Krb5LoginModuleに渡されます。 これらのオプションによって、Krb5LoginModuleでは指定した場所にあるチケット・キャッシュを使用するようになります。 システム・プロパティのuser.home/ (file.separator)は、それぞれの値に展開されます。

実行時にインストールされるConfigurationオブジェクトは、常に1つだけです。 Configurationオブジェクトは、setConfigurationメソッドを呼び出すことでインストールできます。 インストールされたConfigurationオブジェクトを取得するには、getConfigurationメソッドを呼び出します。

実行時にConfigurationオブジェクトがインストールされていない場合は、getConfigurationを呼び出すと、デフォルトのConfiguration実装のインスタンス(この抽象クラスのデフォルトのサブクラス実装)がインストールされます。 デフォルトのConfiguration実装は、login.configuration.providerセキュリティ・プロパティの値を希望するConfigurationサブクラス実装の完全修飾名に設定することによって変更できます。

アプリケーション・コードは、Configurationを直接サブクラス化して、カスタム実装を提供できます。 また、標準型のgetInstanceファクトリ・メソッドの1つを呼び出すことで、Configurationオブジェクトのインスタンスを構築できます。 デフォルトのポリシー型はJavaLoginConfigです。 標準の構成タイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」の「構成」の項を参照してください。

導入されたバージョン:
1.4
関連項目: