JavaTM Platform
Standard Ed. 6

javax.security.auth.login
クラス Configuration

java.lang.Object
  上位を拡張 javax.security.auth.login.Configuration

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     - LoginModule の処理は成功しなければならない。
                        成功しても失敗しても、LoginModule リストに従って認証が続行されます。

      2) Requisite    - LoginModule の処理は成功しなければならない。
                        成功した場合は、LoginModule リストに従って認証が続行されます。
                        失敗した場合は、ただちに制御がアプリケーションに戻ります (LoginModule リストの順序で認証が行われない)。

      3) Sufficient   - LoginModule の処理は成功しなくても良い。
                        成功した場合は、ただちに制御がアプリケーションに戻ります (LoginModule リストの順序で認証が行われない)。
                        失敗した場合は、LoginModule リストに従って認証が続行されます。

      4) Optional     - LoginModule の処理は成功しなくても良い。
                        成功しても失敗しても、LoginModule リストに従って認証が続行されます。
 
 

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

ModuleOptions は、基本となる 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 は呼び出されます。これにより、失敗したソースを隠すことができます。Krb5LoginModule は Optional であるため、UnixLoginModule (Required) が成功した場合だけ、認証全体が成功します。  

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

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

実行時に Configuration オブジェクトがインストールされなかった場合は、getConfiguration を呼び出すと、デフォルトの Configuration 実装のインスタンス (この abstract クラスのデフォルトのサブクラス実装) がインストールされます。デフォルトの Configuration 実装は、(Java セキュリティープロパティーファイル内の) login.configuration.provider セキュリティープロパティーの値を希望する Configuration サブクラス実装の完全指定名に設定することによって変更できます。Java セキュリティープロパティーファイルは、<JAVA_HOME>/lib/security/java.security という名前のファイルに格納されています。<JAVA_HOME> は java.home システムプロパティーの値を参照しており、JRE のインストールディレクトリを示します。  

アプリケーションコードは、Configuration を直接サブクラス化して、カスタム実装を提供できます。また、標準型の任意の getInstance ファクトリメソッドを 1 つ呼び出すことで、Configuration オブジェクトのインスタンスを構築できます。デフォルトのポリシー型は JavaLoginConfig です。標準の Configuration 型のリストは、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照

関連項目:
LoginContext

入れ子のクラスの概要
static interface Configuration.Parameters
          このインタフェースは、Configuration パラメータのマーカーインタフェースです。
 
コンストラクタの概要
protected Configuration()
          唯一のコンストラクタです。
 
メソッドの概要
abstract  AppConfigurationEntry[] getAppConfigurationEntry(String name)
          この Configuration から、指定された name の AppConfigurationEntries を取得します。
static Configuration getConfiguration()
          インストール済みのログイン Configuration を取得します。
static Configuration getInstance(String type, Configuration.Parameters params)
          指定された型の Configuration オブジェクトを返します。
static Configuration getInstance(String type, Configuration.Parameters params, Provider provider)
          指定された型の Configuration オブジェクトを返します。
static Configuration getInstance(String type, Configuration.Parameters params, String provider)
          指定された型の Configuration オブジェクトを返します。
 Configuration.Parameters getParameters()
          Configuration パラメータを返します。
 Provider getProvider()
          この Configuration のプロバイダを返します。
 String getType()
          この Configuration の型を返します。
 void refresh()
          Configuration をリフレッシュし、再ロードします。
static void setConfiguration(Configuration configuration)
          ログイン Configuration を設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Configuration

protected Configuration()
唯一のコンストラクタです。サブクラスのコンストラクタによる呼び出し用で、通常は暗黙的に呼び出されます。

メソッドの詳細

getConfiguration

public static Configuration getConfiguration()
インストール済みのログイン Configuration を取得します。

戻り値:
ログイン Configuration。Configuration オブジェクトが Configuration.setConfiguration メソッドで設定されている場合は、その Configuration オブジェクトが返される。そうでない場合は、デフォルトの Configuration オブジェクトが返される
例外:
SecurityException - 呼び出し側に、Configuration を取得するアクセス権がない場合
関連項目:
setConfiguration(javax.security.auth.login.Configuration)

setConfiguration

public static void setConfiguration(Configuration configuration)
ログイン Configuration を設定します。

パラメータ:
configuration - 新しい Configuration
例外:
SecurityException - 現在のスレッドに Configuration を設定するアクセス権がない場合
関連項目:
getConfiguration()

getInstance

public static Configuration getInstance(String type,
                                        Configuration.Parameters params)
                                 throws NoSuchAlgorithmException
指定された型の Configuration オブジェクトを返します。  

このメソッドは、最優先の Provider から順に、登録済みのセキュリティープロバイダのリストをトラバースします。指定されたタイプをサポートする最初のプロバイダの ConfigurationSpi 実装をカプセル化する新しい Configuration オブジェクトが返されます。  

登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。

パラメータ:
type - 指定された Configuration 型。標準の Configuration 型のリストは、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照
params - Configuration のパラメータ。null の場合もある
戻り値:
新しい Configuration オブジェクト
例外:
SecurityException - 呼び出し側に、指定された型の Configuration インスタンスを取得するアクセス権がない場合
NullPointerException - 指定された型が null の場合
IllegalArgumentException - 指定されたパラメータが、選択されたプロバイダの ConfigurationSpi 実装によって認識されない場合
NoSuchAlgorithmException - 指定された型の ConfigurationSpi 実装をサポートするプロバイダが存在しない場合
導入されたバージョン:
1.6
関連項目:
Provider

getInstance

public static Configuration getInstance(String type,
                                        Configuration.Parameters params,
                                        String provider)
                                 throws NoSuchProviderException,
                                        NoSuchAlgorithmException
指定された型の Configuration オブジェクトを返します。  

指定されたプロバイダの ConfigurationSpi 実装をカプセル化する新しい Configuration オブジェクトが返されます。プロバイダリストに登録されたプロバイダを指定する必要があります。  

登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。

パラメータ:
type - 指定された Configuration 型。標準の Configuration 型のリストは、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照
params - Configuration のパラメータ。null の場合もある
provider - プロバイダ
戻り値:
新しい Configuration オブジェクト
例外:
SecurityException - 呼び出し側に、指定された型の Configuration インスタンスを取得するアクセス権がない場合
NullPointerException - 指定された型が null の場合
IllegalArgumentException - 指定されたプロバイダが null か空の場合、または指定されたパラメータが指定されたプロバイダの ConfigurationSpi 実装によって認識されない場合
NoSuchProviderException - 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合
NoSuchAlgorithmException - 指定されたプロバイダが、指定された型の ConfigurationSpi 実装をサポートしない場合
導入されたバージョン:
1.6
関連項目:
Provider

getInstance

public static Configuration getInstance(String type,
                                        Configuration.Parameters params,
                                        Provider provider)
                                 throws NoSuchAlgorithmException
指定された型の Configuration オブジェクトを返します。  

指定された Provider オブジェクトの ConfigurationSpi 実装をカプセル化する新しい Provider オブジェクトが返されます。指定された Provider オブジェクトは、プロバイダリストに登録する必要はありません。

パラメータ:
type - 指定された Configuration 型。標準の Configuration 型のリストは、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照
params - Configuration のパラメータ。null の場合もある
provider - Provider
戻り値:
新しい Configuration オブジェクト
例外:
SecurityException - 呼び出し側に、指定された型の Configuration インスタンスを取得するアクセス権がない場合
NullPointerException - 指定された型が null の場合
IllegalArgumentException - 指定されたプロバイダが null の場合、または指定されたパラメータが指定されたプロバイダの ConfigurationSpi 実装によって認識されない場合
NoSuchAlgorithmException - 指定されたプロバイダが、指定された型の ConfigurationSpi 実装をサポートしない場合
導入されたバージョン:
1.6
関連項目:
Provider

getProvider

public Provider getProvider()
この Configuration のプロバイダを返します。  

この Configuration インスタンスは、Configuration.getInstance メソッドを使って取得された場合にかぎり、プロバイダを持ちます。そうでない場合は、このメソッドは null を返します。

戻り値:
この Configuration のプロバイダ、または null
導入されたバージョン:
1.6

getType

public String getType()
この Configuration の型を返します。  

この Configuration インスタンスは、Configuration.getInstance メソッドを使って取得された場合にかぎり、型を持ちます。そうでない場合は、このメソッドは null を返します。

戻り値:
この Configuration の型、または null
導入されたバージョン:
1.6

getParameters

public Configuration.Parameters getParameters()
Configuration パラメータを返します。  

この Configuration インスタンスは、Configuration.getInstance メソッドを使って取得された場合にかぎり、パラメータを持ちます。そうでない場合は、このメソッドは null を返します。

戻り値:
Configuration パラメータ、または null
導入されたバージョン:
1.6

getAppConfigurationEntry

public abstract AppConfigurationEntry[] getAppConfigurationEntry(String name)
この Configuration から、指定された name の AppConfigurationEntries を取得します。

パラメータ:
name - Configuration のインデックスとして使用される名前
戻り値:
この Configuration から取得する、指定された name の AppConfigurationEntry の配列。指定された name のエントリがない場合は null

refresh

public void refresh()
Configuration をリフレッシュし、再ロードします。  

このメソッドは、この Configuration オブジェクトに、実装に依存した方法でその内容のリフレッシュや再ロードを行わせます。たとえば、Configuration オブジェクトのエントリがファイルに格納されている場合、refresh を呼び出すと、ファイルがもう一度読み取られることになります。  

このメソッドのデフォルト実装では何の処理も行われません。実装によってリフレッシュ操作がサポートされている場合、このメソッドはオーバーライドされます。

例外:
SecurityException - 呼び出し側に、その Configuration をリフレッシュするアクセス権がない場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。