public abstract class AuthConfigFactory extends ObjectSE
ClientAuthConfig
および ServerAuthConfig
オブジェクトを取得するために使用できる AuthConfigProvider
オブジェクトを取得するために使用されます。 認証コンテキスト構成オブジェクトは、認証コンテキストオブジェクトを取得するために使用されます。認証コンテキストオブジェクト、つまり ClientAuthContext
および ServerAuthContex
オブジェクトは、認証モジュールをカプセル化します。認証モジュールは、リクエストメッセージとレスポンスメッセージのセキュリティ関連の処理を実行するプラグ可能なコンポーネントです。
呼び出し元はモジュールを直接操作しません。代わりに、モジュールの呼び出しを管理するために認証コンテキストに依存しています。呼び出し元は、AuthConfigProvider から取得した ClientAuthConfig
または ServerAuthConfig
で getAuthContext
メソッドを呼び出すことにより、認証コンテキストを取得します。
以下は、クライアント認証コンテキストを取得し、それを使用してリクエストを保護するための一般的な一連の呼び出しを表しています。
システム全体の AuthConfigFactory 実装は、setFactory
を呼び出すことによって設定でき、getFactory
を使用して取得できます。
この抽象クラスのすべての実装は、パブリックのゼロ引数コンストラクターを提供する必要があります。このコンストラクターは、永続的な宣言表現からの AuthConfigProviders の構築と登録(自己登録を含む)をサポートする必要があります。例: ファクトリ実装クラスは、AuthConfigProvider ごとに 1 つのエントリを持ち、各エントリが以下を表す一連の構成エントリを含むファイルの内容を解釈できます。
エントリ構文は、RegistrationContext を定義するのに十分な情報をオプションで含めることも提供する必要があります。この情報は、ファクトリがプロバイダーを登録するときにのみ存在します。例: 各エントリは、次の形式の 1 つ以上の RegistrationContext オブジェクトを含めることを提供できます。
registerConfigProvider(AuthConfigProvider provider,...)
を参照)。AuthConfigFactory 実装は、このクラスで定義された要件に準拠している限り、独自の永続的な宣言型構文を自由に選択できます。
修飾子と型 | クラスと説明 |
---|---|
static interface | AuthConfigFactory.RegistrationContext ファクトリでの AuthConfigProvider 登録のレイヤー識別子、アプリケーションコンテキスト識別子、説明コンポーネントを表します。 |
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | DEFAULT_FACTORY_SECURITY_PROPERTY デフォルトの AuthConfigFactory 実装クラスを定義するために使用される Security プロパティの名前。 |
static StringSE | GET_FACTORY_PERMISSION_NAME getFactory を呼び出すために必要な SecurityPermission の名前 |
static SecurityPermissionSE | getFactorySecurityPermission getFactory メソッドへのアクセスを認可するために使用される GET_FACTORY_PERMISSION_NAME という名前の SecurityPermission。 |
static StringSE | PROVIDER_REGISTRATION_PERMISSION_NAME ファクトリ実装クラスの更新メソッドへのアクセスを認可するために使用される SecurityPermission の名前。 |
static SecurityPermissionSE | providerRegistrationSecurityPermission ファクトリ実装クラスの更新メソッドへのアクセスを認可するために使用する SecurityPermission(名前 PROVIDER_REGISTRATION_PERMISSION_NAME )のインスタンス。 |
static StringSE | SET_FACTORY_PERMISSION_NAME setFactory を呼び出すために必要な SecurityPermission の名前 |
static SecurityPermissionSE | setFactorySecurityPermission setFactory メソッドへのアクセスを認可するために使用される SET_FACTORY_PERMISSION_NAME という名前の SecurityPermission。 |
コンストラクターと説明 |
---|
AuthConfigFactory() |
修飾子と型 | メソッドと説明 |
---|---|
abstract StringSE[] | detachListener(RegistrationListener listener, StringSE layer, StringSE appContext) レイヤーと appContext の値がこのメソッドに対応する引数と一致するすべてのプロバイダー登録からリスナーの関連付けを解除します。 |
abstract AuthConfigProvider | getConfigProvider(StringSE layer, StringSE appContext, RegistrationListener listener) ファクトリから登録済みの AuthConfigProvider を取得します。 |
static AuthConfigFactory | getFactory() システム全体の AuthConfigFactory 実装を取得します。 |
abstract AuthConfigFactory.RegistrationContext | getRegistrationContext(StringSE registrationID) 識別された登録の登録コンテキストを取得します。 |
abstract StringSE[] | getRegistrationIDs(AuthConfigProvider provider) ファクトリでのプロバイダーインスタンスのすべての登録の登録識別子を取得します。 |
abstract void | refresh() プロバイダー登録の永続的な宣言表現をファクトリに再処理させます。 |
abstract StringSE | registerConfigProvider(AuthConfigProvider provider, StringSE layer, StringSE appContext, StringSE description) メッセージレイヤーおよびアプリケーションコンテキスト識別子用の ServerAuthConfig および / または ClientAuthConfig オブジェクトのプロバイダーである(メモリ内の)ファクトリ内に登録します。 |
abstract StringSE | registerConfigProvider(StringSE className, MapSE properties, StringSE layer, StringSE appContext, StringSE description) ファクトリ内に登録し、プロバイダー登録のファクトリの永続的な宣言表現内に、メッセージ層およびアプリケーションコンテキスト識別子の ServerAuthConfig および / または ClientAuthConfig オブジェクトのプロバイダーを記録します。 |
abstract boolean | removeRegistration(StringSE registrationID) 識別されたプロバイダー登録をファクトリから(および必要に応じてプロバイダー登録の永続的な宣言型表現から)削除し、削除された登録に関連付けられているリスナーを呼び出します。 |
static void | setFactory(AuthConfigFactory factory) システム全体の AuthConfigFactory 実装を設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static final StringSE DEFAULT_FACTORY_SECURITY_PROPERTY
public static final StringSE GET_FACTORY_PERMISSION_NAME
public static final StringSE SET_FACTORY_PERMISSION_NAME
public static final StringSE PROVIDER_REGISTRATION_PERMISSION_NAME
public static final SecurityPermissionSE getFactorySecurityPermission
GET_FACTORY_PERMISSION_NAME
という名前の SecurityPermission。public static final SecurityPermissionSE setFactorySecurityPermission
SET_FACTORY_PERMISSION_NAME
という名前の SecurityPermission。public static final SecurityPermissionSE providerRegistrationSecurityPermission
PROVIDER_REGISTRATION_PERMISSION_NAME
)のインスタンス。public static AuthConfigFactory getFactory()
呼び出し時に null 以外のシステム全体のファクトリインスタンスが定義されている場合、たとえば setFactory
の場合、それが返されます。それ以外の場合は、デフォルトの AuthConfigFactory 実装クラスのインスタンスを作成しようとします。デフォルトのファクトリ実装クラスの完全修飾クラス名は、DEFAULT_FACTORY_SECURITY_PROPERTY
セキュリティプロパティの値から取得されます。デフォルトのファクトリ実装クラスのインスタンスがこのメソッドによって正常に構築されると、このメソッドはそれをシステム全体のファクトリインスタンスとして設定します。
Java セキュリティプロパティファイルの絶対パス名は、JAVA_HOME/lib/security/java.security です。ここで、JAVA_HOME は、JDK がインストールされたディレクトリを指します。
SecurityManager が有効になっている場合、getFactorySecurityPermission
はこのメソッドを呼び出す必要があります。呼び出し時に、システム全体のファクトリインスタンスがまだ定義されていない場合は、setFactorySecurityPermission
も必要になります。
SecurityExceptionSE
- 呼び出し元にファクトリを取得する権限がない場合、またはファクトリをシステム全体のインスタンスとして設定する場合。クラスのロード中、またはデフォルトの AuthConfigFactory 実装クラスの構築中に例外がスローされた場合にもスローされます。この場合、SecurityException には原因としてルート例外が含まれます。public static void setFactory(AuthConfigFactory factory)
以前に実装が設定されていた場合は、置き換えられます。
登録されたファクトリへの変更はリスナーに通知されません。
factory
- null の可能性がある AuthConfigFactory インスタンス。SecurityExceptionSE
- 発信者にファクトリを設定する権限がない場合。public abstract AuthConfigProvider getConfigProvider(StringSE layer, StringSE appContext, RegistrationListener listener)
すべてのファクトリは、次の優先ルールを使用して、layer 引数と appContext 引数に一致する登録済み AuthConfigProvider を選択する必要があります。
上記の優先規則は、null または null 以外の className
引数で作成された登録に同等に適用されます。
layer
- 登録された AuthConfigProvider が返されるメッセージ層を識別する文字列。この引数の値は null の場合があります。appContext
- 登録された AuthConfigProvider が返されるアプリケーションメッセージングコンテキストを識別する文字列。この引数の値は null の場合があります。listener
- 対応する登録が登録解除または置換された場合に notify
メソッドが呼び出される RegistrationListener。この引数の値は null の場合があります。public abstract StringSE registerConfigProvider(StringSE className, MapSE properties, StringSE layer, StringSE appContext, StringSE description)
このメソッドは、AuthConfigProvider インターフェースのすべての実装でサポートされる必要がある 2 つの引数コンストラクターを使用し、このメソッドはコンストラクターのファクトリ引数に null 値を渡す必要があります。AuthConfigProviderImpl AuthConfigProviderImpl(Map properties, AuthConfigFactory factory)
。
メッセージレイヤーと appContext の特定の組み合わせに対して、ファクトリ内に最大で 1 つの登録が存在する可能性があります。layer と appContext の値が同じである既存の登録は、後続の登録に置き換えられます。置換が発生すると、登録 ID、レイヤー、appContext ID は変更されず、AuthConfigProvider(初期化プロパティを含む)と説明が置き換えられます。
ファクトリは、Java プロセスの存続期間内に、一意の登録識別子を登録に割り当てる必要があります。また、以前に使用した登録識別子を、メッセージレイヤーや appContext 識別子が以前の使用と異なる登録に割り当ててはなりません。
このメソッドを使用して実行されるプログラム登録は、ファクトリコンストラクターによって使用されるプロバイダー登録の永続的な宣言型表現を(上記の置換ルールに従って)更新する必要があります。
SecurityManager が有効になっている場合、引数プロバイダーをロードする前、ファクトリに変更を加える前に、このメソッドは、呼び出し元のアクセス制御コンテキストに providerRegistrationSecurityPermission
が付与されていることを確認する必要があります。
className
- AuthConfigProvider 実装クラスの完全修飾名(または null)。このパラメーターに null 値を指定してこのメソッドを呼び出すと、結果の登録が最適なレイヤーおよび appContext 値を使用して呼び出された場合、getConfigProvider
は null を返します。properties
- プロバイダーコンストラクターの properties 引数に渡される初期化プロパティを含む Map オブジェクト。この引数は null の可能性があります。この引数が null でない場合、マップで発生するすべての値とキーは String 型である必要があります。layer
- プロバイダーがファクトリで登録されるメッセージレイヤーを識別する文字列。このパラメーターの引数として null 値を渡すことができます。その場合、プロバイダーはすべてのレイヤーに登録されます。appContext
- このプロバイダーに構成オブジェクトをリクエストするためにランタイムが使用できる文字列値。このパラメーターの引数として null 値を渡すことができます。その場合、プロバイダーはすべての構成 ID(指定されたレイヤー)に登録されます。description
- プロバイダーを説明するテキスト文字列。この値は null の可能性があります。SecurityExceptionSE
- 呼び出し元がファクトリでプロバイダーを登録する権限を持っていない場合、またはプロバイダーの構築(null 以外の className
が指定されている場合)または登録が失敗した場合。public abstract StringSE registerConfigProvider(AuthConfigProvider provider, StringSE layer, StringSE appContext, StringSE description)
メッセージレイヤーと appContext の特定の組み合わせに対して、ファクトリ内に最大で 1 つの登録が存在する可能性があります。layer と appContext の値が同じである既存の登録は、後続の登録に置き換えられます。置換が発生すると、登録 ID、レイヤー、appContext ID は変更されず、AuthConfigProvider(初期化プロパティを含む)と説明が置き換えられます。
ファクトリは、Java プロセスの存続期間内に、一意の登録識別子を登録に割り当てる必要があります。また、以前に使用した登録識別子を、メッセージレイヤーや appContext 識別子が以前の使用と異なる登録に割り当ててはなりません。
SecurityManager が有効になっている場合、ファクトリに変更を加える前に、このメソッドは、呼び出し元のアクセス制御コンテキストに providerRegistrationSecurityPermission
が付与されていることを確認する必要があります。
provider
- ファクトリで登録される AuthConfigProvider(または null)。このパラメーターに null 値を指定してこのメソッドを呼び出すと、結果の登録が最適なレイヤーおよび appContext 値を使用して呼び出された場合、getConfigProvider
は null を返します。layer
- プロバイダーがファクトリで登録されるメッセージレイヤーを識別する文字列。このパラメーターの引数として null 値を渡すことができます。その場合、プロバイダーはすべてのレイヤーに登録されます。appContext
- このプロバイダーに構成オブジェクトをリクエストするためにランタイムが使用できる文字列値。このパラメーターの引数として null 値を渡すことができます。その場合、プロバイダーはすべての構成 ID(指定されたレイヤー)に登録されます。description
- プロバイダーを説明するテキスト文字列。この値は null の可能性があります。SecurityExceptionSE
- 発信者がファクトリでプロバイダーを登録する権限を持っていない場合、またはプロバイダーの登録が失敗した場合。public abstract boolean removeRegistration(StringSE registrationID)
SecurityManager が有効になっている場合、ファクトリに変更を加える前に、このメソッドは、呼び出し元のアクセス制御コンテキストに providerRegistrationSecurityPermission
が付与されていることを確認する必要があります。
registrationID
- ファクトリでのプロバイダー登録を識別する文字列 SecurityExceptionSE
- 発信者がファクトリでプロバイダーの登録を解除する権限を持っていない場合。public abstract StringSE[] detachListener(RegistrationListener listener, StringSE layer, StringSE appContext)
ファクトリは定期的にリスナーに通知して、使用されなくなったリスナーを効果的に切り離す必要があります。
SecurityManager が有効になっている場合、ファクトリに変更を加える前に、このメソッドは、呼び出し元のアクセス制御コンテキストに providerRegistrationSecurityPermission
が付与されていることを確認する必要があります。
listener
- 切り離される RegistrationListener。layer
- メッセージレイヤーまたは null を識別する文字列。appContext
- アプリケーションコンテキストまたは null を識別する文字列値。SecurityExceptionSE
- 呼び出し元にリスナーをファクトリから切り離す権限がない場合。public abstract StringSE[] getRegistrationIDs(AuthConfigProvider provider)
provider
- 登録 ID が返される AuthConfigurationProvider。この引数は null の場合があります。その場合、ファクトリ内のすべてのアクティブな登録の ID が返されることを示します。public abstract AuthConfigFactory.RegistrationContext getRegistrationContext(StringSE registrationID)
registrationID
- ファクトリでのプロバイダー登録を識別する文字列 public abstract void refresh()
ファクトリは、プロバイダー実装クラスまたは初期化プロパティの変更が発生した場合にのみ、既存の登録を置き換える必要があります。
SecurityManager が有効になっている場合、このメソッドがファクトリに変更を加える可能性がある前に、このメソッドは、呼び出し元のアクセス制御コンテキストに providerRegistrationSecurityPermission
が付与されていることを確認する必要があります。
SecurityExceptionSE
- 呼び出し元にファクトリをリフレッシュする権限がない場合、または再初期化中にエラーが発生した場合。Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.