|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--javax.security.auth.login.Configuration
これは、アプリケーションにおける 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 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 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 |
コンストラクタの詳細 |
protected Configuration()
メソッドの詳細 |
public static Configuration getConfiguration()
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 applicationName)
applicationName
- Configuration をインデックス化するための名前
public abstract void refresh()
このメソッドは、このオブジェクトが、現在の Configuration をリフレッシュや再ロードする原因となります。これは実装に依存します。たとえば Configuration オブジェクトがファイルに格納されている場合、refresh
を呼び出すと、ファイルがもう一度読み取られることになります。
SecurityException
- 呼び出し側に、Configuration をリフレッシュするアクセス権がない場合
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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.