JavaTM 2
Platform
Std. Ed. v1.4.0

javax.security.auth.login
クラス Configuration

java.lang.Object
  |
  +--javax.security.auth.login.Configuration

public abstract class Configuration
extends Object

これは、アプリケーションにおける LoginModule の構成を表す abstract クラスです。Configuration では、特定のアプリケーションで使用される LoginModule と、LoginModule が呼び出される順番を指定します。このabstract クラスでは、実際の Configuration を読み取ったりロードしたりする実装を提供するようにサブクラス化する必要があります。

特定のアプリケーション appName 用に構成された LoginModule を判定するために Configuration を読み取る必要性があるときに、次の呼び出しが行われます。

	config = Configuration.getConfiguration();
	entries = config.getAppConfigurationEntry(appName);
 

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

      Application {
	      ModuleClass  Flag    ModuleOptions;
	      ModuleClass  Flag    ModuleOptions;
	      ModuleClass  Flag    ModuleOptions;
      };
      Application {
	      ModuleClass  Flag    ModuleOptions;
	      ModuleClass  Flag    ModuleOptions;
      };
      other {
	      ModuleClass  Flag    ModuleOptions;
	      ModuleClass  Flag    ModuleOptions;
      };
 

Configuration の各エントリは、アプリケーション名 Application でインデックス化されており、そのアプリケーション用に構成された LoginModules のリストが含まれています。各 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 自体で定義されており、内部で動作を制御します。たとえば、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 実装は、(Java セキュリティプロパティファイルの) login.configuration.provider セキュリティプロパティに、希望する Configuration 実装クラスの完全指定名を設定することによって変更できます。Java セキュリティプロパティファイルは、<JAVA_HOME>/lib/security/java.security という名前のファイルに格納されます。ただし、<JAVA_HOME> は JDK がインストールされたディレクトリを示します。

関連項目:
LoginContext

コンストラクタの概要
protected Configuration()
          唯一のコンストラクタです。
 
メソッドの概要
abstract  AppConfigurationEntry[] getAppConfigurationEntry(String applicationName)
          このアプリケーションの LoginModule の構成に対応する AppConfigurationEntry の配列を取得します。
static Configuration getConfiguration()
          現在の Login Configuration を取得します。
abstract  void refresh()
          Configuration をリフレッシュし、再ロードします。
static void setConfiguration(Configuration configuration)
          現在の Login Configuration を設定します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Configuration

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

メソッドの詳細

getConfiguration

public static Configuration getConfiguration()
現在の Login Configuration を取得します。

戻り値:
現在の Login Configuration
例外:
SecurityException - 呼び出し側に、Configuration を取得するアクセス権がない場合
関連項目:
setConfiguration(javax.security.auth.login.Configuration)

setConfiguration

public static void setConfiguration(Configuration configuration)
現在の Login Configuration を設定します。

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

getAppConfigurationEntry

public abstract AppConfigurationEntry[] getAppConfigurationEntry(String applicationName)
このアプリケーションの LoginModule の構成に対応する AppConfigurationEntry の配列を取得します。

パラメータ:
applicationName - Configuration をインデックス化するための名前
戻り値:
このアプリケーションの LoginModule の構成に対応する AppConfigurationEntry の配列。このアプリケーションに構成された LoginModule がない場合は null

refresh

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

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

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

JavaTM 2
Platform
Std. Ed. v1.4.0

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

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.