|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjavax.security.auth.login.Configuration
public abstract class Configuration
これは、アプリケーションにおける 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 LoginModule か Optional 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 |
| コンストラクタの詳細 |
|---|
protected Configuration()
| メソッドの詳細 |
|---|
public static Configuration getConfiguration()
Configuration.setConfiguration メソッドで設定されている場合は、そのオブジェクトが返されます。そうでない場合は、デフォルトの Configuration オブジェクトが返されます。
SecurityException - 呼び出し側に、Configuration を取得するアクセス権がない場合setConfiguration(javax.security.auth.login.Configuration)public static void setConfiguration(Configuration configuration)
Configuration を設定します。
configuration - 新しい Configuration
SecurityException - 現在のスレッドが Configuration を設定する Permission を持たない場合getConfiguration()public abstract AppConfigurationEntry[] getAppConfigurationEntry(String name)
name - Configuration をインデックス化するための名前
public abstract void refresh()
このメソッドは、この Configuration オブジェクトに、実装に依存した方法でその内容のリフレッシュや再ロードを行わせます。たとえば、Configuration オブジェクトのエントリがファイルに格納されている場合、refresh を呼び出すと、ファイルがもう一度読み取られることになります。
SecurityException - 呼び出し側に、その Configuration をリフレッシュするアクセス権がない場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。