インターフェース Acl

  • すべてのスーパーインターフェース:
    java.io.Serializable
    すべての既知のサブインターフェース:
    AuditableAclMutableAclOwnershipAcl
    すべての既知の実装クラス:
    AclImpl

    public interface Acl
    extends java.io.Serializable
    ドメインオブジェクトのアクセス制御リスト(ACL)を表します。

    Acl は、特定のドメインオブジェクトのすべての ACL エントリを表します。ドメインオブジェクト自体への参照を必要としないようにするために、このインターフェースは、ObjectIdentity インターフェースを介してドメインオブジェクトと ACL オブジェクト ID 間の間接参照を処理します。

    実装クラスは、一部またはすべての Sid インスタンスの Permission 情報を表すインスタンスを返すことを選択できます。インスタンスには、特定のドメインオブジェクトのすべての Sid が含まれているとは限りません。

    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   抽象メソッド  
      修飾子と型 メソッド 説明
      java.util.List<AccessControlEntry>getEntries()
      現在の Acl で表されるすべてのエントリを返します。
      ObjectIdentitygetObjectIdentity()
      この Acl がエントリを提供するドメインオブジェクトを取得します。
      SidgetOwner()
      Acl の所有者を決定します。
      AclgetParentAcl()
      ドメインオブジェクトは、ACL 継承のために親を持つ場合があります。
      booleanisEntriesInheriting()
      getParentAcl() からの ACL エントリを現在の Acl に流す必要があるかどうかを示します。
      booleanisGranted​(java.util.List<Permission> permission, java.util.List<Sid> sids, boolean administrativeMode)
      これは実際の認可ロジック方式であり、ACL 認可決定が必要な場合は常に使用する必要があります。
      booleanisSidLoaded​(java.util.List<Sid> sids)
      効率上の理由から、Acl が読み込まれ、システム内のすべての Sid のエントリが含まれていない場合があります。
    • メソッドの詳細

      • getEntries

        java.util.List<AccessControlEntry> getEntries()
        現在の Acl で表されるすべてのエントリを返します。 Acl の親に関連付けられているエントリは返されません。

        この方法は通常、管理目的で使用されます。

        エントリが配列に現れる順序は、MutableAcl インターフェースで宣言されたメソッドにとって重要です。さらに、一部の実装では、高度な権限チェックの一部として順序を使用する場合があります。

        認可の決定を行うためにこのメソッドを使用しないでください。代わりに isGranted(List, List, boolean) を使用してください。

        Acl Sid のサブセットのみを表す場合でも、このメソッドは正しく動作する必要があります。 Sid のサブセットのみが表現されている場合、呼び出し元は結果を正しく処理する必要があります。

        戻り値:
        Acl で表されるエントリのリスト。現在この Acl に関連付けられているエントリがない場合は null
      • getObjectIdentity

        ObjectIdentity getObjectIdentity()
        この Acl がエントリを提供するドメインオブジェクトを取得します。 Acl が作成されると、これは不変です。
        戻り値:
        オブジェクトのアイデンティティ (決して null )
      • getOwner

        Sid getOwner()
        Acl の所有者を決定します。所有権の意味は実装によって異なり、不定です。
        戻り値:
        所有者 (実装が所有権の概念を使用しない場合、 null になる可能性があります)
      • getParentAcl

        Acl getParentAcl()
        ドメインオブジェクトは、ACL 継承のために親を持つ場合があります。親が存在する場合、その ACL はこのメソッドを介してアクセスできます。次に、親の親(祖父母)にアクセスできます。

        このメソッドは、親 Acl とこの Acl の間のナビゲーション階層の存在のみを表します。実際の継承を行うには、isEntriesInheriting() true である必要があります。

        Acl Sid のサブセットのみを表す場合でも、このメソッドは正しく動作する必要があります。 Sid のサブセットのみが表現されている場合、呼び出し元は結果を正しく処理する必要があります。

        戻り値:
        親の Acl (この Acl に親がない場合、 null になる可能性があります)
      • isEntriesInheriting

        boolean isEntriesInheriting()
        getParentAcl() からの ACL エントリを現在の Acl に流す必要があるかどうかを示します。

        Acl と親 Acl の間の単なるリンクだけでは、ACL エントリが継承されません。これは、ドメインオブジェクトは完全に独立したエントリを持ちたいが、ナビゲーションのために親とのリンクを維持する必要があるためです。このメソッドは、ナビゲーション関連がエントリの実際の継承にも及ぶかどうかを示します。

        戻り値:
        true 親 ACL エントリが現在の Acl を継承する場合
      • isGranted

        boolean isGranted​(java.util.List<Permission> permission,
                          java.util.List<Sid> sids,
                          boolean administrativeMode)
                   throws NotFoundException,
                          UnloadedSidException
        これは実際の認可ロジック方式であり、ACL 認可決定が必要な場合は常に使用する必要があります。

        現在のプリンシパルのセキュリティ ID を表す Sid の配列が表示されます。さらに、肯定的な認可決定に必要な権限を示すために、1 つ以上のビットが設定された一連の Permission が提示されます。配列内に任意Permission を保持することで、肯定的な認可が得られるため、配列が提示されます。

        認可の決定を行うために使用される実際のアプローチは実装に任され、このインターフェースでは指定されません。例: 実装は、ACL エントリが格納されている順序で現在の ACL を検索してもよい(MAY)。渡された Permission に示されているものと同じアクティブビットを持つ単一のエントリが見つかった場合、そのエントリの認可または拒否の状態によって認可の決定が決定される場合があります。拒否状態の場合、拒否の決定は、配列で渡された他のすべての Permission も検索に失敗した場合にのみ関連します。現在の ACL のビットに一致するエントリが見つからない場合、isEntriesInheriting()true であれば、認可の決定が親 ACL に渡されることがあります。一致するエントリがない場合、実装は例外をスローするか、事前定義された認可決定を行うことができます。

        このメソッドは、 Acl Sid のサブセットのみを表す場合でも正しく動作する必要がありますが、メソッドが呼び出された場合、実装はシグネチャー定義の例外の 1 つをスローすることが認可されます。この Acl にロードされたことのない Sid の認可決定をリクエストします。

        パラメーター:
        permission - 必要な権限 (少なくとも 1 つのエントリが必要)
        sids - プリンシパルが保持するセキュリティ ID (少なくとも 1 つのエントリが必要)
        administrativeMode - true がクエリが管理目的であり、ロギングまたは監査(実装でサポートされている場合)を行わないことを示す場合
        戻り値:
        認可が付与されている場合、 true
        例外:
        NotFoundException - 通常、この特定の権限や SID の ACL 情報がないために、実装が正式な認可を決定できない場合にスローする必要があります。
        UnloadedSidException - Acl に、引数として渡された 1 つ以上の Sid の詳細がない場合にスローされます
      • isSidLoaded

        boolean isSidLoaded​(java.util.List<Sid> sids)
        効率上の理由から、Acl が読み込まれ、システム内のすべての Sid のエントリが含まれていない場合があります。ACL がロードされていると、すべてシドを表していない場合は、ACL をすべての方法は、それが実際に表しシドインスタンスの限られた範囲内で使用することができます。

        読み取り専用の認可決定が行われている場合、特定の Sid に対してのみ Acl をロードするのは正常です。ただし、 Acl のユーザーインターフェースレポートまたは変更が必要な場合は、 Acl にすべての Sid をロードする必要があります。このメソッドは、指定された Sid がロードされているかどうかを示します。

        パラメーター:
        sids - 発信者がこの Sid がサポートしているかどうかを知ることに関心がある 1 つ以上のセキュリティ ID
        戻り値:
        渡されたすべての Sid がこの Acl インスタンスによって表される場合、 true