- 直系の既知のサブクラス:
ConfigFile
ログイン構成には次に示す情報が格納されます。 この例では、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 - TheLoginModule
is required to succeed. If it succeeds or fails, authentication still continues to proceed down theLoginModule
list. 2) Requisite - TheLoginModule
is required to succeed. If it succeeds, authentication continues down theLoginModule
list. If it fails, control immediately returns to the application (authentication does not proceed down theLoginModule
list). 3) Sufficient - TheLoginModule
is not required to succeed. If it does succeed, control immediately returns to the application (authentication does not proceed down theLoginModule
list). If it fails, authentication continues down theLoginModule
list. 4) Optional - TheLoginModule
is not required to succeed. If it succeeds or fails, authentication still continues to proceed down theLoginModule
list.
すべてのRequired LoginModuleとRequisite LoginModuleが成功した場合にだけ、認証全体が成功します。 Sufficient LoginModule
が構成され成功した場合は、そのSufficient LoginModule
より前にRequired LoginModuleとRequisite LoginModuleが成功していれば認証全体が成功します。 アプリケーションでRequired LoginModuleもRequisite LoginModuleも構成されていない場合は、少なくとも1つのSufficientまたはOptional LoginModule
が成功する必要があります。
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オブジェクトは、常に1つだけです。 Configurationオブジェクトは、setConfiguration
メソッドを呼び出すことでインストールできます。 インストールされたConfigurationオブジェクトを取得するには、getConfiguration
メソッドを呼び出します。
実行時にConfigurationオブジェクトがインストールされていない場合は、getConfiguration
を呼び出すと、デフォルトのConfiguration実装のインスタンス(この抽象クラスのデフォルトのサブクラス実装)がインストールされます。 デフォルトのConfiguration実装は、login.configuration.provider
セキュリティ・プロパティの値を希望するConfigurationサブクラス実装の完全修飾名に設定することによって変更できます。
アプリケーション・コードは、Configurationを直接サブクラス化して、カスタム実装を提供できます。 また、標準型のgetInstance
ファクトリ・メソッドの1つを呼び出すことで、Configurationオブジェクトのインスタンスを構築できます。 デフォルトのポリシー型はJavaLoginConfigです。 標準の構成タイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」の「構成」の項を参照してください。
- 導入されたバージョン:
- 1.4
- 関連項目:
-
ネストされたクラスのサマリー
修飾子と型クラス説明static interface
このインタフェースは、Configurationパラメータのマーカー・インタフェースです。 -
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明abstract AppConfigurationEntry[]
この構成から、指定されたname
のAppConfigurationEntriesを取得します。static Configuration
インストール済みのログインConfigurationを取得します。static Configuration
getInstance
(String type, Configuration.Parameters params) 指定された型のConfigurationオブジェクトを返します。static Configuration
getInstance
(String type, Configuration.Parameters params, String provider) 指定された型のConfigurationオブジェクトを返します。static Configuration
getInstance
(String type, Configuration.Parameters params, Provider provider) 指定された型のConfigurationオブジェクトを返します。Configurationパラメータを返します。このConfigurationのプロバイダを返します。getType()
このConfigurationの型を返します。void
refresh()
Configurationをリフレッシュし、再ロードします。static void
setConfiguration
(Configuration configuration) ログインConfiguration
を設定します。
-
コンストラクタの詳細
-
Configuration
protected Configuration()唯一のコンストラクタです。 (サブクラスのコンストラクタによる呼出し用で、通常は暗黙的に呼び出されます。)
-
-
メソッドの詳細
-
getConfiguration
public static Configuration getConfiguration()インストール済みのログインConfigurationを取得します。- 戻り値:
- ログインConfiguration。 Configurationオブジェクトが
Configuration.setConfiguration
メソッドで設定されている場合は、そのConfigurationオブジェクトが返される。 そうでない場合は、デフォルトのConfigurationオブジェクトが返される。 - 例外:
SecurityException
- 呼出し側に、Configurationを取得する権限がない場合。- 関連項目:
-
setConfiguration
public static void setConfiguration(Configuration configuration) ログインConfiguration
を設定します。- パラメータ:
configuration
- 新しいConfiguration
- 例外:
SecurityException
- 現在のスレッドにConfiguration
を設定する権限がない場合。- 関連項目:
-
getInstance
public static Configuration getInstance(String type, Configuration.Parameters params) throws NoSuchAlgorithmException 指定された型のConfigurationオブジェクトを返します。このメソッドは、最優先のProviderから順に、登録済みのセキュリティ・プロバイダのリストをトラバースします。 指定されたタイプをサポートする最初のプロバイダのConfigurationSpi実装をカプセル化する新しいConfigurationオブジェクトが返されます。
登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、さらに
jdk.security.provider.preferred
Security
プロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()
によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
type
- 指定されたConfiguration型。 標準の構成タイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」の「構成」の項を参照してください。params
- Configurationのパラメータ。nullの場合もある。- 戻り値:
- 新しい
Configuration
オブジェクト - 例外:
IllegalArgumentException
- 指定されたパラメータが、選択されたProvider
からのConfigurationSpi
実装によって理解されない場合NoSuchAlgorithmException
-Provider
が、指定された型のConfigurationSpi
実装をサポートしていない場合NullPointerException
-type
がnull
である場合SecurityException
- 呼び出し元に、指定された型のConfiguration
インスタンスを取得する権限がない場合- 導入されたバージョン:
- 1.6
- 関連項目:
-
getInstance
public static Configuration getInstance(String type, Configuration.Parameters params, String provider) throws NoSuchProviderException, NoSuchAlgorithmException 指定された型のConfigurationオブジェクトを返します。指定されたプロバイダのConfigurationSpi実装をカプセル化する新しいConfigurationオブジェクトが返されます。 プロバイダ・リストに登録されたプロバイダを指定する必要があります。
登録済みプロバイダのリストは、
Security.getProviders()
メソッド経由で取得できます。- パラメータ:
type
- 指定されたConfiguration型。 標準の構成タイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」の「構成」の項を参照してください。params
- Configurationのパラメータ。nullの場合もある。provider
- プロバイダ- 戻り値:
- 新しい
Configuration
オブジェクト - 例外:
IllegalArgumentException
- 指定されたプロバイダがnull
または空の場合、または指定されたパラメータが指定されたプロバイダからのConfigurationSpi
実装によって認識されない場合NoSuchProviderException
- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NoSuchAlgorithmException
- 指定されたプロバイダが、指定された型のConfigurationSpi
実装をサポートしていない場合NullPointerException
-type
がnull
である場合SecurityException
- 呼び出し元に、指定された型のConfiguration
インスタンスを取得する権限がない場合- 導入されたバージョン:
- 1.6
- 関連項目:
-
getInstance
public static Configuration getInstance(String type, Configuration.Parameters params, Provider provider) throws NoSuchAlgorithmException 指定された型のConfigurationオブジェクトを返します。指定されたProviderオブジェクトのConfigurationSpi実装をカプセル化する新しいProviderオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。
- パラメータ:
type
- 指定されたConfiguration型。 標準の構成タイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」の「構成」の項を参照してください。params
- Configurationのパラメータ。nullの場合もある。provider
- Provider。- 戻り値:
- 新しい
Configuration
オブジェクト - 例外:
IllegalArgumentException
- 指定されたProvider
がnull
である場合、または指定されたプロバイダからのConfigurationSpi
実装によって指定されたパラメータが認識されない場合NoSuchAlgorithmException
- 指定されたProvider
が、指定された型のConfigurationSpi
実装をサポートしていない場合NullPointerException
-type
がnull
である場合SecurityException
- 呼び出し元に、指定された型のConfiguration
インスタンスを取得する権限がない場合- 導入されたバージョン:
- 1.6
- 関連項目:
-
getProvider
public Provider getProvider()このConfigurationのプロバイダを返します。このConfigurationインスタンスは、
Configuration.getInstance
メソッドを使って取得された場合にかぎり、プロバイダを持ちます。 それ以外の場合、このメソッドはnullを返します。- 戻り値:
- このConfigurationのプロバイダ、またはnull。
- 導入されたバージョン:
- 1.6
-
getType
public String getType()このConfigurationの型を返します。このConfigurationインスタンスは、
Configuration.getInstance
の呼出しによって取得された場合にかぎり型を持ちます。 それ以外の場合、このメソッドはnullを返します。- 戻り値:
- このConfigurationの型、またはnull。
- 導入されたバージョン:
- 1.6
-
getParameters
public Configuration.Parameters getParameters()Configurationパラメータを返します。このConfigurationインスタンスは、
Configuration.getInstance
の呼出しによって取得された場合にかぎりパラメータを持ちます。 それ以外の場合、このメソッドはnullを返します。- 戻り値:
- Configurationパラメータ、またはnull。
- 導入されたバージョン:
- 1.6
-
getAppConfigurationEntry
public abstract AppConfigurationEntry[] getAppConfigurationEntry(String name) この構成から、指定されたname
のAppConfigurationEntriesを取得します。- パラメータ:
name
- Configurationのインデックスとして使用される名前。- 戻り値:
- この構成から指定された
name
のAppConfigurationEntriesの配列、または指定されたname
のエントリがない場合はnull
-
refresh
public void refresh()Configurationをリフレッシュし、再ロードします。このメソッドは、このConfigurationオブジェクトに、実装に依存した方法でその内容のリフレッシュや再ロードを行わせます。 たとえば、Configurationオブジェクトのエントリがファイルに格納されている場合、
refresh
を呼び出すと、ファイルがもう一度読み取られることになります。このメソッドのデフォルト実装では何の処理も行われません。 実装によってリフレッシュ操作がサポートされている場合、このメソッドはオーバーライドされます。
- 例外:
SecurityException
- 呼出し側に、そのConfigurationをリフレッシュするアクセス権がない場合。
-