public interface PolicyConfiguration
ポリシーコンテキストのライフサイクルは、3 つの状態によって定義されます。"open"、"inService"、"deleted"。ポリシーコンテキストは、これら 3 つの状態のいずれかにあります。
「オープン」状態のポリシーコンテキストは構成中です。PolicyConfiguration インターフェースの任意の方法で操作できます。「オープン」状態のポリシーコンテキストは、Policy.refresh
で、アクセス決定を実行する際にポリシープロバイダーが使用するポリシーステートメントに同化してはなりません。ポリシーコンテキストのポリシーステートメントが関連するプロバイダーによって同化されるためには、ポリシーコンテキストが "inService" 状態である必要があります。"open" 状態のポリシーコンテキストは、commit メソッドを呼び出すことによって "inService" 状態に移行します。
"inService" 状態のポリシーコンテキストは、関連するポリシープロバイダーによるアクセス決定を実行するために使用されているポリシーステートメントに同化するために使用できます。プロバイダーは、プロバイダーの refresh メソッドが呼び出されると、ポリシーステートメントを含むポリシーコンテキストを同化します。プロバイダーの refresh メソッドが呼び出されると、状態が "inService" であるポリシーコンテキストのみを同化する必要があり、各ポリシーコンテキストに対してサービスを開始するポリシーステートメントが、呼び出し時にコンテキストで定義されたもののみであることを確認する必要があります。リフレッシュします。"inService" 状態のポリシーコンテキストは、追加の構成には使用できず、PolicyConfigurationFactory の getPolicyConfiguration メソッドを呼び出すことで "open" 状態に戻すことができます。
「削除済み」状態のポリシーコンテキストは、構成に使用できず、プロバイダーへの同化にも使用できません。状態が「削除済み」のポリシーコンテキストは、関連付けられた PolicyConfigurationFactory の getPolicyConfiguration メソッドを呼び出すことにより、後続の処理のために再利用できます。「削除された」ポリシーコンテキストは、getPolicyConfiguration の呼び出しの結果として返されたときに、「開いた」状態に移行します。
次の表は、ポリシーコンテキストのライフサイクルと PolicyConfiguration インターフェースのメソッド間の対応を示しています。表の右端の 3 列は、列の先頭で識別される PolicyConfiguration 状態に対応しています。これらの列のセルの値は、対応する行の左端の列で識別されたメソッドの呼び出しの結果として生じる次の状態、または列で表される状態でメソッドの呼び出しがサポートされていないことを示します(この場合、状態は変更されません)。
メソッド | 現在の状態から次の状態へ | ||
---|---|---|---|
削除 | 開く | inService | |
addToExcludedPolicy | サポートされていない操作 | 開く | サポートされていない操作 |
addToRole | サポートされていない操作 | 開く | サポートされていない操作 |
addToUncheckedPolicy | サポートされていない操作 | 開く | サポートされていない操作 |
コミット | サポートされていない操作 | inService | inService |
削除 | 削除 | 削除 | 削除 |
getContextID | 削除 | 開く | inService |
inService | 削除 | 開く | inService |
linkConfiguration | サポートされていない操作 | 開く | サポートされていない操作 |
removeExcludedPolicy | サポートされていない操作 | 開く | サポートされていない操作 |
removeRole | サポートされていない操作 | 開く | サポートされていない操作 |
removeUncheckedPolicy | サポートされていない操作 | 開く | サポートされていない操作 |
プロバイダーの実装がマルチスレッド環境と互換性を持つためには、プロバイダーの refresh メソッドを 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.