public interface PolicyConfiguration
ポリシーコンテキストのライフサイクルは、「オープン」、"inService"、「削除済み」の 3 つの状態によって定義されます。ポリシーコンテキストは、これら 3 つの状態のいずれかになります。
「オープン」状態のポリシーコンテキストは構成中であり、PolicyConfiguration インターフェースの任意のメソッドによって操作できます。「オープン」状態のポリシーコンテキストは、ポリシープロバイダーがアクセス決定を実行する際に使用するポリシーステートメントに Policy.refresh
で同化してはなりません。ポリシーコンテキストのポリシーステートメントが関連付けられているプロバイダーによって同化されるためには、ポリシーコンテキストが "inService" 状態である必要があります。「オープン」状態のポリシーコンテキストは、コミットメソッドを呼び出すことによって "inService" 状態に移行します。
"inService" 状態のポリシーコンテキストは、関連付けられたポリシープロバイダーによってアクセス決定を実行するために使用されているポリシーステートメントに同化できます。プロバイダーは、プロバイダーのリフレッシュメソッドが呼び出されると、ポリシーステートメントを含むポリシーコンテキストを同化します。プロバイダーのリフレッシュメソッドが呼び出されると、状態が "inService" のポリシーコンテキストのみを同化する必要があります。また、各ポリシーコンテキストでサービスに投入されるポリシーステートメントは、リフレッシュの呼び出し時にコンテキストで定義されているものだけであることを確認する必要があります。"inService" 状態のポリシーコンテキストは、追加の構成には使用できず、PolicyConfigurationFactory の getPolicyConfiguration メソッドを呼び出すことによって「オープン」状態に戻すことができます。
「削除済み」状態のポリシーコンテキストは、構成に使用することも、プロバイダーに同化することもできません。状態が「削除済み」のポリシーコンテキストは、関連付けられている PolicyConfigurationFactory の getPolicyConfiguration メソッドを呼び出すことによって、後続の処理のために再利用できます。「削除済み」ポリシーコンテキストは、getPolicyConfiguration の呼び出しの結果として返されると、「オープン」状態に移行します。
次の表は、ポリシーコンテキストのライフサイクルと PolicyConfiguration インターフェースのメソッド間の対応を示しています。表の右端の 3 列は、列の先頭で識別される PolicyConfiguration 状態に対応しています。これらの列のセルの値は、対応する行の左端の列で識別されたメソッドの呼び出しの結果として生じる次の状態、または列で表される状態でメソッドの呼び出しがサポートされていないことを示します(この場合、状態は変更されません)。
メソッド | 現在の状態から次の状態へ | ||
---|---|---|---|
削除 | 開く | inService | |
addToExcludedPolicy | サポートされていない操作 | 開く | サポートされていない操作 |
addToRole | サポートされていない操作 | 開く | サポートされていない操作 |
addToUncheckedPolicy | サポートされていない操作 | 開く | サポートされていない操作 |
コミット | サポートされていない操作 | inService | inService |
削除 | 削除 | 削除 | 削除 |
getContextID | 削除 | 開く | inService |
inService | 削除 | 開く | inService |
linkConfiguration | サポートされていない操作 | 開く | サポートされていない操作 |
removeExcludedPolicy | サポートされていない操作 | 開く | サポートされていない操作 |
removeRole | サポートされていない操作 | 開く | サポートされていない操作 |
removeUncheckedPolicy | サポートされていない操作 | 開く | サポートされていない操作 |
プロバイダー実装がマルチスレッド環境と互換性を持つためには、プロバイダーのリフレッシュメソッドを PolicyConfiguration インターフェースのメソッド、および PolicyConfigurationFactory の getPolicyConfiguration メソッドと inService メソッドと同期させる必要がある場合があります。
Permission
SE, PermissionCollection
SE, PolicyContextException
, PolicyConfigurationFactory
修飾子と型 | メソッドと説明 |
---|---|
void | addToExcludedPolicy(PermissionSE permission) この PolicyConfiguration に単一の除外されたポリシーステートメントを追加するために使用されます。 |
void | addToExcludedPolicy(PermissionCollectionSE permissions) この PolicyConfiguration に除外されたポリシーステートメントを追加するために使用されます。 |
void | addToRole(StringSE roleName, PermissionSE permission) この PolicyConfiguration の名前付きロールに単一の権限を追加するために使用されます。 |
void | addToRole(StringSE roleName, PermissionCollectionSE permissions) この PolicyConfiguration の名前付きロールに権限を追加するために使用されます。 |
void | addToUncheckedPolicy(PermissionSE permission) この PolicyConfiguration に単一の未チェックのポリシーステートメントを追加するために使用されます。 |
void | addToUncheckedPolicy(PermissionCollectionSE permissions) この PolicyConfiguration に未チェックのポリシーステートメントを追加するために使用されます。 |
void | commit() このメソッドは、インターフェースがこの PolicyConfiguration オブジェクトであるポリシーコンテキストの状態を "inService" に設定するために使用されます。 |
void | delete() この PolicyConfiguration からすべてのポリシーステートメントが削除され、PolicyConfiguration で delete、getContextID、inService 以外のメソッドを呼び出すと拒否され、UnsupportedOperationException がスローされるように内部状態が設定されます。 |
StringSE | getContextID() このメソッドは、このオブジェクトのポリシーコンテキスト識別子を返します。 |
boolean | inService() このメソッドは、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストが "inService" 状態にあるかどうかを判断するために使用されます。 |
void | linkConfiguration(PolicyConfiguration link) この構成と別の構成の間に関連を作成して、それらが同じプリンシパルからロールへのマッピングを共有するようにします。 |
void | removeExcludedPolicy() この PolicyConfiguration から除外されたポリシーステートメントを削除するために使用されます。 |
void | removeRole(StringSE roleName) この PolicyConfiguration からロールとそのすべての権限を削除するために使用されます。 |
void | removeUncheckedPolicy() この PolicyConfiguration から未チェックのポリシーステートメントを削除するために使用されます。 |
StringSE getContextID() throws PolicyContextException
SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。PolicyContextException
- 実装が、getContextID メソッドシグネチャーによって説明されていないチェック済み例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。void addToRole(StringSE roleName, PermissionCollectionSE permissions) throws PolicyContextException
ロールに追加されたすべての権限が「ロールにマップされた」プリンシパルに確実に付与されるようにするのは、ポリシープロバイダーのジョブです。
roleName
- 権限が追加されるロールの名前。permissions
- ロールに追加される権限のコレクション。コレクションは、同種または異種のコレクションのいずれかです。SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。UnsupportedOperationExceptionSE
- このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。PolicyContextException
- 実装が、addToRole メソッドのシグネチャーによって説明されていないチェック済みの例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。void addToRole(StringSE roleName, PermissionSE permission) throws PolicyContextException
ロールに追加されたすべての権限が「ロールにマップされた」プリンシパルに確実に付与されるようにするのは、ポリシープロバイダーのジョブです。
roleName
- 権限が追加されるロールの名前。permission
- ロールに追加する権限。SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。UnsupportedOperationExceptionSE
- このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。PolicyContextException
- 実装が、addToRole メソッドのシグネチャーによって説明されていないチェック済みの例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。void addToUncheckedPolicy(PermissionCollectionSE permissions) throws PolicyContextException
permissions
- チェックされていないポリシーステートメントとして追加されるアクセス許可のコレクション。コレクションは、同種または異種のコレクションのいずれかです。SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。UnsupportedOperationExceptionSE
- このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。PolicyContextException
- 実装が、addToUncheckedPolicy メソッドシグネチャーによって説明されていないチェック済み例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。void addToUncheckedPolicy(PermissionSE permission) throws PolicyContextException
permission
- 未チェックのポリシーステートメントに追加する権限。SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。UnsupportedOperationExceptionSE
- このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。PolicyContextException
- 実装が、addToUncheckedPolicy メソッドシグネチャーによって説明されていないチェック済み例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。void addToExcludedPolicy(PermissionCollectionSE permissions) throws PolicyContextException
permissions
- 除外されたポリシーステートメントに追加されるアクセス許可のコレクション。コレクションは、同種または異種のコレクションのいずれかです。SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。UnsupportedOperationExceptionSE
- このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。PolicyContextException
- 実装が、addToExcludedPolicy メソッドシグネチャーによって説明されていないチェック済み例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。void addToExcludedPolicy(PermissionSE permission) throws PolicyContextException
permission
- 除外されたポリシーステートメントに追加する権限。SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。UnsupportedOperationExceptionSE
- このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。PolicyContextException
- 実装が、addToExcludedPolicy メソッドシグネチャーによって説明されていないチェック済み例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。void removeRole(StringSE roleName) throws PolicyContextException
roleName
- この PolicyConfiguration から削除するロールの名前。roleName パラメーターの値が "*" であり、この PolicyConfiguration に "*" という名前のロールが存在しない場合は、この PolicyConfiguration からすべてのロールを削除する必要があります。SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。UnsupportedOperationExceptionSE
- このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。PolicyContextException
- 実装が、removeRole メソッドシグネチャーで考慮されていないチェック例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に (構築中に) カプセル化されます。void removeUncheckedPolicy() throws PolicyContextException
SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。UnsupportedOperationExceptionSE
- このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。PolicyContextException
- 実装が、removeUncheckedPolicy メソッドシグネチャーで考慮されていないチェック例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に (構築中に) カプセル化されます。void removeExcludedPolicy() throws PolicyContextException
SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。UnsupportedOperationExceptionSE
- このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。PolicyContextException
- 実装が、removeExcludedPolicy メソッドシグネチャーで考慮されていないチェック例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に (構築中に) カプセル化されます。void linkConfiguration(PolicyConfiguration link) throws PolicyContextException
ロールを構成するポリシーステートメント、または PolicyConfiguration で除外またはチェックされていないポリシーコレクションを構成するポリシーステートメントは、別の構成にリンクされている構成の影響を受けないことに注意してください。
この方法によって形成される関連は、対称的、推移的、べき等です。引数 PolicyConfiguration にこの PolicyConfiguration とは異なるポリシーコンテキスト識別子がない場合、関連は形成されず、以下で説明するように、例外がスローされます。
link
- この PolicyConfiguration とは異なる PolicyConfiguration への参照。SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。UnsupportedOperationExceptionSE
- このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。IllegalArgumentExceptionSE
- ポリシーコンテキストがこの PolicyConfiguration のポリシーコンテキストと同等である引数 PolicyConfiguration を指定して呼び出された場合。PolicyContextException
- 実装が、linkConfiguration メソッドシグネチャーで考慮されていないチェック例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に (構築中に) カプセル化されます。void delete() throws PolicyContextException
この操作は、削除された PolicyConfiguration に関連するリンクを削除する以外は、リンクされた PolicyConfigurations には影響しません。
SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。PolicyContextException
- 実装が、delete メソッドのシグネチャーによって説明されていないチェック済みの例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。void commit() throws PolicyContextException
ポリシーコンテキストの状態が "inService" の場合、PolicyConfiguration オブジェクトで commit、delete、getContextID、inService 以外のメソッドを呼び出すと、UnsupportedOperationException がスローされます。
SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。UnsupportedOperationExceptionSE
- このメソッドが呼び出されたときに、インターフェースがこの PolicyConfiguration オブジェクトであるポリシーコンテキストの状態が「削除」された場合。PolicyContextException
- 実装が、commit メソッドのシグネチャーによって説明されていないチェック済みの例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。boolean inService() throws PolicyContextException
SecurityExceptionSE
- "setPolicy" SecurityPermission が付与されていない AccessControlContext によって呼び出された場合。PolicyContextException
- 実装が、inService メソッドシグネチャーで考慮されていないチェック例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に (構築中に) カプセル化されます。Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.