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