パッケージ jakarta.security.jacc

インターフェース PolicyConfiguration


public interface PolicyConfiguration
このインターフェースのメソッドは、ポリシープロバイダーでポリシーステートメントを作成するためにコンテナーによって使用されます。PolicyConfiguration インターフェースを実装するオブジェクトは、対応するポリシープロバイダー内の対応するポリシーコンテキストのポリシーステートメント構成インターフェースを提供します。

ポリシーコンテキストのライフサイクルは、「オープン」、"inService"、「削除済み」の 3 つの状態によって定義されます。ポリシーコンテキストは、これら 3 つの状態のいずれかになります。

「オープン」状態のポリシーコンテキストは構成中であり、PolicyConfiguration インターフェースの任意のメソッドによって操作できます。「オープン」状態のポリシーコンテキストは、ポリシープロバイダーがアクセス決定を実行する際に使用するポリシーステートメントに Policy.refresh で同化してはなりません。ポリシーコンテキストのポリシーステートメントが関連付けられているプロバイダーによって同化されるためには、ポリシーコンテキストが "inService" 状態である必要があります。「オープン」状態のポリシーコンテキストは、コミットメソッドを呼び出すことによって "inService" 状態に移行します。

"inService" 状態のポリシーコンテキストは、関連付けられたポリシープロバイダーによってアクセス決定を実行するために使用されているポリシーステートメントに同化できます。プロバイダーは、プロバイダーのリフレッシュメソッドが呼び出されると、ポリシーステートメントを含むポリシーコンテキストを同化します。プロバイダーのリフレッシュメソッドが呼び出されると、状態が "inService" のポリシーコンテキストのみを同化する必要があります。また、各ポリシーコンテキストでサービスに投入されるポリシーステートメントは、リフレッシュの呼び出し時にコンテキストで定義されているものだけであることを確認する必要があります。"inService" 状態のポリシーコンテキストは、追加の構成には使用できず、PolicyConfigurationFactory の getPolicyConfiguration メソッドを呼び出すことによって「オープン」状態に戻すことができます。

「削除済み」状態のポリシーコンテキストは、構成に使用することも、プロバイダーに同化することもできません。状態が「削除済み」のポリシーコンテキストは、関連付けられている PolicyConfigurationFactory の getPolicyConfiguration メソッドを呼び出すことによって、後続の処理のために再利用できます。「削除済み」ポリシーコンテキストは、getPolicyConfiguration の呼び出しの結果として返されると、「オープン」状態に移行します。

次の表は、ポリシーコンテキストのライフサイクルと PolicyConfiguration インターフェースのメソッド間の対応を示しています。表の右端の 3 列は、列の先頭で識別される PolicyConfiguration 状態に対応しています。これらの列のセルの値は、対応する行の左端の列で識別されたメソッドの呼び出しの結果として生じる次の状態、または列で表される状態でメソッドの呼び出しがサポートされていないことを示します(この場合、状態は変更されません)。

PolicyConfiguration 状態テーブル
メソッド 現在の状態から次の状態へ
削除 開く inService
addToExcludedPolicy サポートされていない操作 開く サポートされていない操作
addToRole サポートされていない操作 開く サポートされていない操作
addToUncheckedPolicy サポートされていない操作 開く サポートされていない操作
コミット サポートされていない操作 inServiceinService
削除 削除 削除 削除
getContextID 削除 開く inService
inService 削除 開く inService
linkConfiguration サポートされていない操作 開く サポートされていない操作
removeExcludedPolicy サポートされていない操作 開く サポートされていない操作
removeRole サポートされていない操作 開く サポートされていない操作
removeUncheckedPolicy サポートされていない操作 開く サポートされていない操作

プロバイダー実装がマルチスレッド環境と互換性を持つためには、プロバイダーのリフレッシュメソッドを PolicyConfiguration インターフェースのメソッド、および PolicyConfigurationFactory の getPolicyConfiguration メソッドと inService メソッドと同期させる必要がある場合があります。

作成者:
Ron Monzillo, Gary Ellison
関連事項:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    この PolicyConfiguration に単一の除外されたポリシーステートメントを追加するために使用されます。
    default void
    この PolicyConfiguration に除外されたポリシーステートメントを追加するために使用されます。
    void
    addToRole(StringSE roleName, PermissionSE permission)
    この PolicyConfiguration の名前付きロールに単一の権限を追加するために使用されます。
    default void
    この PolicyConfiguration の名前付きロールに権限を追加するために使用されます。
    void
    この PolicyConfiguration に単一の未チェックのポリシーステートメントを追加するために使用されます。
    default void
    この PolicyConfiguration に未チェックのポリシーステートメントを追加するために使用されます。
    default void
    このメソッドは、インターフェースがこの PolicyConfiguration オブジェクトであるポリシーコンテキストの状態を "inService" に設定するために使用されます。
    void
    この PolicyConfiguration からすべてのポリシーステートメントが削除され、PolicyConfiguration で delete、getContextID、inService 以外のメソッドを呼び出すと拒否され、UnsupportedOperationException がスローされるように内部状態が設定されます。
    このメソッドは、このオブジェクトのポリシーコンテキスト識別子を返します。
    addToExcludedPolicy(Permission) および addToExcludedPolicy(PermissionCollection) への以前の呼び出しによってこの PolicyConfiguration に追加されたすべての除外ポリシーステートメントを返すために使用されます。
    addToRole(String, Permission) および addToRole(String, PermissionCollection) への以前の呼び出しを介してこの PolicyConfiguration に追加されたすべてのロールごとのポリシーステートメントを返すために使用され、それらの呼び出しで使用されたロール名によってインデックス付けされます。
    addToUncheckedPolicy(Permission) および addToUncheckedPolicy(PermissionCollection) への以前の呼び出しによってこの PolicyConfiguration に追加されたすべての未チェックのポリシーステートメントを返すために使用されます。
    default boolean
    このメソッドは、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストが "inService" 状態にあるかどうかを判断するために使用されます。
    void
    この構成と別の構成の間に関連を作成して、それらが同じプリンシパルからロールへのマッピングを共有するようにします。
    void
    この PolicyConfiguration から除外されたポリシーステートメントを削除するために使用されます。
    void
    この PolicyConfiguration からロールとそのすべての権限を削除するために使用されます。
    void
    この PolicyConfiguration から未チェックのポリシーステートメントを削除するために使用されます。
  • メソッドの詳細

    • getContextID

      StringSE getContextID() throws PolicyContextException
      このメソッドは、このオブジェクトのポリシーコンテキスト識別子を返します。
      戻り値:
      このオブジェクトのポリシーコンテキスト識別子。
      例外:
      PolicyContextException - 実装が、getContextID メソッドシグネチャーによって説明されていないチェック済み例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。
    • addToRole

      default void addToRole(StringSE roleName, PermissionCollectionSE permissions) throws PolicyContextException
      この PolicyConfiguration の名前付きロールに権限を追加するために使用されます。名前付きロールが PolicyConfiguration に存在しない場合、この関数の呼び出しの結果として作成されます。

      ロールに追加されたすべての権限が「ロールにマップされた」プリンシパルに確実に付与されるようにするのは、ポリシープロバイダーのジョブです。

      パラメーター:
      roleName - 権限が追加されるロールの名前。
      permissions - ロールに追加される権限のコレクション。コレクションは、同種または異種のコレクションのいずれかです。
      例外:
      UnsupportedOperationExceptionSE - このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。
      PolicyContextException - 実装が、addToRole メソッドのシグネチャーによって説明されていないチェック済みの例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。
    • addToRole

      void addToRole(StringSE roleName, PermissionSE permission) throws PolicyContextException
      この PolicyConfiguration の名前付きロールに単一の権限を追加するために使用されます。名前付きロールが PolicyConfiguration に存在しない場合、この関数の呼び出しの結果として作成されます。

      ロールに追加されたすべての権限が「ロールにマップされた」プリンシパルに確実に付与されるようにするのは、ポリシープロバイダーのジョブです。

      パラメーター:
      roleName - 権限が追加されるロールの名前。
      permission - ロールに追加する権限。
      例外:
      UnsupportedOperationExceptionSE - このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。
      PolicyContextException - 実装が、addToRole メソッドのシグネチャーによって説明されていないチェック済みの例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。
    • addToUncheckedPolicy

      default void addToUncheckedPolicy(PermissionCollectionSE permissions) throws PolicyContextException
      この PolicyConfiguration に未チェックのポリシーステートメントを追加するために使用されます。
      パラメーター:
      permissions - チェックされていないポリシーステートメントとして追加されるアクセス許可のコレクション。コレクションは、同種または異種のコレクションのいずれかです。
      例外:
      UnsupportedOperationExceptionSE - このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。
      PolicyContextException - 実装が、addToUncheckedPolicy メソッドシグネチャーによって説明されていないチェック済み例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。
    • addToUncheckedPolicy

      void addToUncheckedPolicy(PermissionSE permission) throws PolicyContextException
      この PolicyConfiguration に単一の未チェックのポリシーステートメントを追加するために使用されます。
      パラメーター:
      permission - 未チェックのポリシーステートメントに追加する権限。
      例外:
      UnsupportedOperationExceptionSE - このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。
      PolicyContextException - 実装が、addToUncheckedPolicy メソッドシグネチャーによって説明されていないチェック済み例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。
    • addToExcludedPolicy

      default void addToExcludedPolicy(PermissionCollectionSE permissions) throws PolicyContextException
      この PolicyConfiguration に除外されたポリシーステートメントを追加するために使用されます。
      パラメーター:
      permissions - 除外されたポリシーステートメントに追加されるアクセス許可のコレクション。コレクションは、同種または異種のコレクションのいずれかです。
      例外:
      UnsupportedOperationExceptionSE - このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。
      PolicyContextException - 実装が、addToExcludedPolicy メソッドシグネチャーによって説明されていないチェック済み例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。
    • addToExcludedPolicy

      void addToExcludedPolicy(PermissionSE permission) throws PolicyContextException
      この PolicyConfiguration に単一の除外されたポリシーステートメントを追加するために使用されます。
      パラメーター:
      permission - 除外されたポリシーステートメントに追加する権限。
      例外:
      UnsupportedOperationExceptionSE - このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。
      PolicyContextException - 実装が、addToExcludedPolicy メソッドシグネチャーによって説明されていないチェック済み例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。
    • getPerRolePermissions

      MapSE<StringSE,PermissionCollectionSE> getPerRolePermissions()
      addToRole(String, Permission) および addToRole(String, PermissionCollection) への以前の呼び出しを介してこの PolicyConfiguration に追加されたすべてのロールごとのポリシーステートメントを返すために使用され、それらの呼び出しで使用されたロール名によってインデックス付けされます。
      戻り値:
      この PolicyConfiguration に追加されたすべてのロールごとのポリシーステートメントのマップ。
    • getUncheckedPermissions

      PermissionCollectionSE getUncheckedPermissions()
      addToUncheckedPolicy(Permission) および addToUncheckedPolicy(PermissionCollection) への以前の呼び出しによってこの PolicyConfiguration に追加されたすべての未チェックのポリシーステートメントを返すために使用されます。
      戻り値:
      この PolicyConfiguration に追加されたすべての未チェックのポリシーステートメントのコレクション。
    • getExcludedPermissions

      PermissionCollectionSE getExcludedPermissions()
      addToExcludedPolicy(Permission) および addToExcludedPolicy(PermissionCollection) への以前の呼び出しによってこの PolicyConfiguration に追加されたすべての除外ポリシーステートメントを返すために使用されます。
      戻り値:
      この PolicyConfiguration に追加されたすべての除外ポリシーステートメントのコレクション。
    • removeRole

      void removeRole(StringSE roleName) throws PolicyContextException
      この PolicyConfiguration からロールとそのすべての権限を削除するために使用されます。この方法は、この PolicyConfiguration と他の PolicyConfiguration との間のリンクには影響しません。
      パラメーター:
      roleName - この PolicyConfiguration から削除するロールの名前。roleName パラメーターの値が "*" であり、この PolicyConfiguration に "*" という名前のロールが存在しない場合は、この PolicyConfiguration からすべてのロールを削除する必要があります。
      例外:
      UnsupportedOperationExceptionSE - このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。
      PolicyContextException - 実装が、removeRole メソッドシグネチャーで考慮されていないチェック例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に (構築中に) カプセル化されます。
    • removeUncheckedPolicy

      void removeUncheckedPolicy() throws PolicyContextException
      この PolicyConfiguration から未チェックのポリシーステートメントを削除するために使用されます。この方法は、この PolicyConfiguration と他の PolicyConfiguration との間のリンクには影響しません。
      例外:
      PolicyContextException - 実装が、removeUncheckedPolicy メソッドシグネチャーで考慮されていないチェック例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に (構築中に) カプセル化されます。
    • removeExcludedPolicy

      void removeExcludedPolicy() throws PolicyContextException
      この PolicyConfiguration から除外されたポリシーステートメントを削除するために使用されます。この方法は、この PolicyConfiguration と他の PolicyConfiguration との間のリンクには影響しません。
      例外:
      UnsupportedOperationExceptionSE - このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。
      PolicyContextException - 実装が、removeExcludedPolicy メソッドシグネチャーで考慮されていないチェック例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に (構築中に) カプセル化されます。
    • linkConfiguration

      void linkConfiguration(PolicyConfiguration link) throws PolicyContextException
      この構成と別の構成の間に、同じプリンシパルからロールへのマッピングを共有するような関連を作成します。PolicyConfigurations は、アプリケーションが複数のモジュールで構成されている場合に必要となるように、共通のプリンシパルからロールへのマッピングを複数の個別に管理可能な PolicyConfigurations に適用するようにリンクされています。

      ロールを構成するポリシーステートメント、または PolicyConfiguration で除外またはチェックされていないポリシーコレクションを構成するポリシーステートメントは、別の構成にリンクされている構成の影響を受けないことに注意してください。

      この方法によって形成される関連は、対称的、推移的、べき等です。引数 PolicyConfiguration にこの PolicyConfiguration とは異なるポリシーコンテキスト識別子がない場合、関連は形成されず、以下で説明するように、例外がスローされます。

      パラメーター:
      link - この PolicyConfiguration とは異なる PolicyConfiguration への参照。
      例外:
      UnsupportedOperationExceptionSE - このメソッドが呼び出されたときに、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストの状態が「削除済み」または "inService" である場合。
      IllegalArgumentExceptionSE - ポリシーコンテキストがこの PolicyConfiguration のポリシーコンテキストと同等である引数 PolicyConfiguration を指定して呼び出された場合。
      PolicyContextException - 実装が、linkConfiguration メソッドシグネチャーで考慮されていないチェック例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に (構築中に) カプセル化されます。
    • delete

      void delete() throws PolicyContextException
      この PolicyConfiguration からすべてのポリシーステートメントが削除され、PolicyConfiguration で delete、getContextID、inService 以外のメソッドを呼び出すと拒否され、UnsupportedOperationException がスローされるように内部状態が設定されます。

      この操作は、削除された PolicyConfiguration に関連するリンクを削除する以外は、リンクされた PolicyConfigurations には影響しません。

      例外:
      PolicyContextException - 実装が、delete メソッドのシグネチャーによって説明されていないチェック済みの例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。
    • commit

      default void commit() throws PolicyContextException
      このメソッドは、この PolicyConfiguration オブジェクトをインターフェースとするポリシーコンテキストの状態を "inService" に設定するために使用されます。状態が "inService" であるポリシーコンテキストのみが、Policy.refresh メソッドによって処理されるポリシーコンテキストに含まれます。状態が "inService" であるポリシーコンテキストは、ポリシーコンテキストのポリシーコンテキスト識別子を使用して PolicyConfiguration ファクトリの getPolicyConfiguration メソッドを呼び出すことによって、"open" 状態に戻すことができます。

      ポリシーコンテキストの状態が "inService" の場合、PolicyConfiguration オブジェクトで commit、delete、getContextID、inService 以外のメソッドを呼び出すと、UnsupportedOperationException がスローされます。

      例外:
      UnsupportedOperationExceptionSE - このメソッドが呼び出されたときに、インターフェースがこの PolicyConfiguration オブジェクトであるポリシーコンテキストの状態が「削除」された場合。
      PolicyContextException - 実装が、commit メソッドのシグネチャーによって説明されていないチェック済みの例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に(構築中に)カプセル化されます。
    • inService

      default boolean inService() throws PolicyContextException
      このメソッドは、この PolicyConfiguration オブジェクトであるインターフェースを持つポリシーコンテキストが "inService" 状態にあるかどうかを判断するために使用されます。
      戻り値:
      関連付けられたポリシーコンテキストの状態が "inService" の場合は true、それ以外の場合は false。
      例外:
      PolicyContextException - 実装が、inService メソッドシグネチャーで考慮されていないチェック例外をスローした場合。実装クラスによってスローされた例外は、スローされた PolicyContextException に (構築中に) カプセル化されます。