JavaTM 2 Platform
Standard Ed. 5.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 を読み取ったりロードしたりする実装を提供するようにサブクラス化する必要があります。

ログイン構成には以下に示す情報が格納されます。この例では、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 自体で定義されており、内部で動作を制御します。たとえば、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 name)
          この Configuration から、指定された name の AppConfigurationEntries を取得します。
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 を取得します。

戻り値:
ログイン Configuration。Configuration オブジェクトが Configuration.setConfiguration メソッドで設定されている場合は、そのオブジェクトが返されます。そうでない場合は、デフォルトの 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 name)
この Configuration から、指定された name の AppConfigurationEntries を取得します。

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

refresh

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

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

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

JavaTM 2 Platform
Standard Ed. 5.0

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

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