public final class PolicyContext extends ObjectSE
Policy
プロバイダーに伝達するためにコンテナーによって使用されます。Policy
プロバイダーは、ポリシーコンテキスト識別子を使用して、アクセス決定に適用するポリシーのサブセットを選択します。 ポリシーコンテキスト識別子の値は String
であり、各スレッドには個別に確立されたポリシーコンテキスト識別子があります。コンテナーは、静的 setContextID
メソッドを呼び出すことにより、ポリシーコンテキスト識別子のスレッドスコープ値を確立します。スレッドスコープのポリシーコンテキスト識別子の値は、静的 getContextID
メソッドを呼び出すことで(Policy
に)使用できます。
このクラスは、Policy
プロバイダーが、呼び出し元のコンテナーから追加のスレッドスコープのポリシー関連コンテキストオブジェクトをリクエストするためにも使用されます。コンテナーは、静的 registerHandler
メソッドを使用してコンテナー固有の PolicyContext
ハンドラーを登録します。ハンドラー登録はクラスにスコープされ、同じハンドラー登録がすべてのスレッドコンテキストでアクティブになります。コンテナーは、静的メソッド setHandlerData
を使用して、Policy
プロバイダーによってアクティブ化されたときにハンドラーに渡されるスレッドスコープのパラメーターを確立できます。静的 getContext
メソッドは、ハンドラーをアクティブ化し、対応するコンテキストオブジェクトを取得するために使用されます。
このクラスによって提供される静的アクセサー関数を使用すると、特定の PolicyContext インスタンスへの共通の参照とは関係なく、スレッドごとのポリシーコンテキスト値を確立して伝達できます。
PolicyContext クラスは、静的 ThreadLocal インスタンス変数をカプセル化して、ポリシーコンテキスト識別子とハンドラーデータ値を表す場合があります。
アプリケーションサーバーは PolicyContext クラスをバンドルまたはインストールする必要があり、アプリケーションサーバーのコンテナーは、これらのメソッドを呼び出す権限のない呼び出しコンテキストから PolicyContext クラスのメソッドが呼び出されないようにする必要があります。getContextID メソッドと GetHandlerKeys メソッドを除き、コンテナーは、コンテナーアクセス決定を実行するためにコンテナーによって信頼されている呼び出しコンテキストに PolicyContext クラスのメソッドへのアクセスを制限し、認可する必要があります。PolicyContext クラスは、"setPolicy" SecurityPermission が付与されていない AccessControlContext からの呼び出しを拒否し、コンテナーアクセス決定を実行するために使用されるポリシープロバイダーに "setPolicy" 権限が付与されるようにすることで、(コンテナーに代わって) この要件を満たすことができます。
PolicyContextHandler
修飾子と型 | メソッドと説明 |
---|---|
static ObjectSE | getContext(StringSE key) このメソッドは、 Policy プロバイダーが、コンテキストオブジェクトキーに登録されている PolicyContextHandler をアクティブ化し、コンテナーから対応するポリシーコンテキストオブジェクトを返すようにするために使用できます。 |
static StringSE | getContextID() この静的メソッドは、アクセサーが呼び出されたスレッドに関連付けられたポリシーコンテキスト識別子の値を返します。 |
static SetSE | getHandlerKeys() このメソッドは、コンテナーによって登録されたコンテナー固有のコンテキストハンドラーを識別するキーを取得するために使用できます。 |
static void | registerHandler(StringSE key, PolicyContextHandler handler, boolean replace) コンテナー固有の PolicyContext ハンドラーを登録するために使用される認可保護メソッド。 |
static void | setContextID(StringSE contextID) このメソッドが呼び出されるスレッドに関連付けられたポリシーコンテキスト識別子の値を変更するために使用される、認可で protected メソッド。 |
static void | setHandlerData(ObjectSE data) スレッドスコープのハンドラーデータオブジェクトを PolicyContext に関連付けるために使用できる認可保護メソッド。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static void setContextID(StringSE contextID)
contextID
- 呼び出しスレッドの PolicyContext に割り当てられるポリシーコンテキスト識別子の値を表す String
。値 null
は、このパラメーターの正当な値です。SecurityExceptionSE
- 呼び出し元の AccessControlContext が、コンテナーによってこのメソッドの呼び出しを認可されていない場合。public static StringSE getContextID()
String
(または null
)ポリシーコンテキスト識別子。スレッドのポリシーコンテキスト識別子が setContext
を介して別の値に設定されていない場合、このメソッドはデフォルトのポリシーコンテキスト識別子 null
を返す必要があります。SecurityExceptionSE
- 呼び出し元の AccessControlContext が、コンテナーによってこのメソッドの呼び出しを認可されていない場合。コンテナーは、任意の AccessControlContext によるこのメソッドの呼び出しを承認することを選択できます。public static void setHandlerData(ObjectSE data)
data
- 呼び出し元のスレッドに関連付けられ、(スレッド上の) Policy
プロバイダーによってアクティブ化されたハンドラーに渡されるコンテナー固有のオブジェクト。値 null
は、このパラメーターの正当な値であり、setHandlerData
がスレッドで呼び出されていない場合にハンドラーのアクティブ化で使用される値です。SecurityExceptionSE
- 呼び出し元の AccessControlContext が、コンテナーによってこのメソッドの呼び出しを認可されていない場合。public static void registerHandler(StringSE key, PolicyContextHandler handler, boolean replace) throws PolicyContextException
PolicyContext
ハンドラーを登録するために使用される認可保護メソッド。ハンドラーは、複数のキーを処理するために登録できますが、いつでも、最大で 1 つのハンドラーをキーに登録できます。key
- ハンドラーによって処理されるコンテキストオブジェクトを識別する(大文字と小文字を区別する) String
。このパラメーターの値は null であってはなりません。handler
- PolicyContextHandler
インターフェースを実装するオブジェクト。このパラメーターの値は null であってはなりません。replace
- このブール値は、呼び出されたときに、同じキーを処理するために PolicyContextHandler
がすでに登録されている場合に、このメソッドの動作を定義します。その場合、この引数の値が true
の場合、既存のハンドラーは引数ハンドラーに置き換えられます。このパラメーターの値が false の場合、既存の登録が保持され、例外がスローされます。IllegalArgumentExceptionSE
- ハンドラー引数またはキー引数のいずれかの値が null の場合、または置換引数の値が false
であり、引数ハンドラーと同じキーを持つハンドラーがすでに登録されている場合。SecurityExceptionSE
- 呼び出し元の AccessControlContext が、コンテナーによってこのメソッドの呼び出しを認可されていない場合。PolicyContextException
- 引数 PolicyContextHandler に対するこのメソッドによる操作により、このメソッドのシグニチャーで考慮されていないチェック済み例外がスローされる場合。public static SetSE getHandlerKeys()
Set
は、登録されているため PolicyContext
でアクティブ化される可能性のあるハンドラーを識別する String
キー値です。SecurityExceptionSE
- 呼び出し元の AccessControlContext が、コンテナーによってこのメソッドの呼び出しを認可されていない場合。コンテナーは、任意の AccessControlContext によるこのメソッドの呼び出しを承認することを選択できます。public static ObjectSE getContext(StringSE key) throws PolicyContextException
Policy
プロバイダーが、コンテキストオブジェクトキーに登録されている PolicyContextHandler
をアクティブ化し、コンテナーから対応するポリシーコンテキストオブジェクトを返すようにするために使用できます。このメソッドがハンドラーをアクティブ化すると、呼び出し元のスレッドに関連付けられたコンテキストオブジェクトキーとハンドラーデータがハンドラーに渡されます。key
- アクティブ化する PolicyContextHandler
とハンドラーから取得するコンテキストオブジェクトを識別する String
。このパラメーターの値は null であってはなりません。null
値が返されます。IllegalArgumentExceptionSE
- PolicyContextHandler
がキーに登録されていない場合、または登録されたハンドラーがキーをサポートしなくなった場合。SecurityExceptionSE
- 呼び出し元の AccessControlContext が、コンテナーによってこのメソッドの呼び出しを認可されていない場合。PolicyContextException
- 識別された PolicyContextHandler に対するこのメソッドによる操作により、このメソッドのシグニチャで考慮されていないチェック済み例外がスローされる場合。Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.