|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.security.auth.login.Configuration
public abstract class Configuration
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 LoginModule
か Optional 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 |
コンストラクタの詳細 |
---|
protected Configuration()
メソッドの詳細 |
---|
public static Configuration getConfiguration()
Configuration.setConfiguration
メソッドで設定されている場合は、その Configuration オブジェクトが返される。そうでない場合は、デフォルトの Configuration オブジェクトが返される
SecurityException
- 呼び出し側に、Configuration を取得するアクセス権がない場合setConfiguration(javax.security.auth.login.Configuration)
public static void setConfiguration(Configuration configuration)
Configuration
を設定します。
configuration
- 新しい Configuration
SecurityException
- 現在のスレッドに Configuration
を設定するアクセス権がない場合getConfiguration()
public static Configuration getInstance(String type, Configuration.Parameters params) throws NoSuchAlgorithmException
このメソッドは、最優先の Provider から順に、登録済みのセキュリティープロバイダのリストをトラバースします。指定されたタイプをサポートする最初のプロバイダの ConfigurationSpi 実装をカプセル化する新しい Configuration オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
type
- 指定された Configuration 型。標準の Configuration 型のリストは、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照params
- Configuration のパラメータ。null の場合もある
SecurityException
- 呼び出し側に、指定された型の Configuration インスタンスを取得するアクセス権がない場合
NullPointerException
- 指定された型が null の場合
IllegalArgumentException
- 指定されたパラメータが、選択されたプロバイダの ConfigurationSpi 実装によって認識されない場合
NoSuchAlgorithmException
- 指定された型の ConfigurationSpi 実装をサポートするプロバイダが存在しない場合Provider
public static Configuration getInstance(String type, Configuration.Parameters params, String provider) throws NoSuchProviderException, NoSuchAlgorithmException
指定されたプロバイダの ConfigurationSpi 実装をカプセル化する新しい Configuration オブジェクトが返されます。プロバイダリストに登録されたプロバイダを指定する必要があります。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
type
- 指定された Configuration 型。標準の Configuration 型のリストは、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照params
- Configuration のパラメータ。null の場合もあるprovider
- プロバイダ
SecurityException
- 呼び出し側に、指定された型の Configuration インスタンスを取得するアクセス権がない場合
NullPointerException
- 指定された型が null の場合
IllegalArgumentException
- 指定されたプロバイダが null か空の場合、または指定されたパラメータが指定されたプロバイダの ConfigurationSpi 実装によって認識されない場合
NoSuchProviderException
- 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合
NoSuchAlgorithmException
- 指定されたプロバイダが、指定された型の ConfigurationSpi 実装をサポートしない場合Provider
public static Configuration getInstance(String type, Configuration.Parameters params, Provider provider) throws NoSuchAlgorithmException
指定された Provider オブジェクトの ConfigurationSpi 実装をカプセル化する新しい Provider オブジェクトが返されます。指定された Provider オブジェクトは、プロバイダリストに登録する必要はありません。
type
- 指定された Configuration 型。標準の Configuration 型のリストは、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照params
- Configuration のパラメータ。null の場合もあるprovider
- Provider
SecurityException
- 呼び出し側に、指定された型の Configuration インスタンスを取得するアクセス権がない場合
NullPointerException
- 指定された型が null の場合
IllegalArgumentException
- 指定されたプロバイダが null の場合、または指定されたパラメータが指定されたプロバイダの ConfigurationSpi 実装によって認識されない場合
NoSuchAlgorithmException
- 指定されたプロバイダが、指定された型の ConfigurationSpi 実装をサポートしない場合Provider
public Provider getProvider()
この Configuration インスタンスは、Configuration.getInstance
メソッドを使って取得された場合にかぎり、プロバイダを持ちます。そうでない場合は、このメソッドは null を返します。
public String getType()
この Configuration インスタンスは、Configuration.getInstance
メソッドを使って取得された場合にかぎり、型を持ちます。そうでない場合は、このメソッドは null を返します。
public Configuration.Parameters getParameters()
この Configuration インスタンスは、Configuration.getInstance
メソッドを使って取得された場合にかぎり、パラメータを持ちます。そうでない場合は、このメソッドは null を返します。
public abstract AppConfigurationEntry[] getAppConfigurationEntry(String name)
name
- Configuration のインデックスとして使用される名前
public void refresh()
このメソッドは、この Configuration オブジェクトに、実装に依存した方法でその内容のリフレッシュや再ロードを行わせます。たとえば、Configuration オブジェクトのエントリがファイルに格納されている場合、refresh
を呼び出すと、ファイルがもう一度読み取られることになります。
このメソッドのデフォルト実装では何の処理も行われません。実装によってリフレッシュ操作がサポートされている場合、このメソッドはオーバーライドされます。
SecurityException
- 呼び出し側に、その Configuration をリフレッシュするアクセス権がない場合
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。