モジュール java.base
パッケージ java.security.acl

インタフェースAcl

  • すべてのスーパー・インタフェース:
    Owner

    非推奨。 
    このパッケージは1.2以降、java.security.Policyおよび関連するクラスに置き換えられました。

    @Deprecated(since="9")
    public interface Acl
    extends Owner
    アクセス制御リスト(ACL: Access Control List)を表すインタフェースです。 アクセス制御リストは、リソースに対するアクセスを保護するデータ構造体です。

    ACLは、複数のACL項目を持つデータ構造体だと考えることができます。 それぞれのACL項目は、特定のプリンシパルに関連するアクセス権のセットを含んでいます。 (プリンシパルは個別のユーザーやグループなどのエンティティを表す)。 さらに、各ACL項目は、正または負に指定されています。 正の場合は、関連するプリンシパルにアクセス権が与えられます。 負の場合、アクセス権は拒否されます。

    各ACL中のACLエントリは次のルールに従います。

    • 各主体は、正と負のACLエントリを多くても1つずつしか持つことができない。すなわち、どの主体も、複数の正または負のACLエントリを持つことは許されていない。 各エントリは、(正負によって、それぞれ)許可または拒否すべきアクセス権のセットを指定する。
    • エントリのない主体に対しては、nullの(空の)アクセス権のセットを持つものと見なす。
    • 主体に、あるアクセス権を与える正のエントリがあり、同時に同じアクセス権を拒否する負のエントリがある場合、結果的には、そのアクセス権は許可も拒否もされていないことになる。
    • 個人のアクセス権は常に、それが属しているグループの(複数の場合もある)アクセス権に優先する。 すなわち、個人の負のアクセス権(特定のアクセス権の拒否)は、そのグループの正のアクセス権に優先する。 また、個人の正のアクセス権はそのグループの負のアクセス権より優先する。
    java.security.acl パッケージは、ACLおよび関連するデータ構造(ACLエントリ、グループ、パーミッションなど。)へのインタフェースを提供します。

    java.security.acl.Aclインタフェースは java.security.acl.Ownerインタフェースを拡張したものです。 Ownerインタフェースは、各ACLの所有者のリストを維持するために使用します。 所有者にしかACLの変更は許されません。 たとえば、ACLのaddEntryメソッドを呼び出し、新しいACLエントリをACLに追加することができるのは所有者だけです。

    導入されたバージョン:
    1.1
    関連項目:
    AclEntry, Owner, getPermissions(java.security.Principal)
    • メソッドの詳細

      • setName

        void setName​(Principal caller,
                     String name)
              throws NotOwnerException
        非推奨。 
        ACLエントリをこのACLに追加します。
        パラメータ:
        caller - このメソッドを起動する主体。 このACLの所有者になっている必要がある。
        name -このACLに与える名前。
        例外:
        NotOwnerException - 呼び出す主体がこのACLの所有者でない場合。
        関連項目:
        getName()
      • addEntry

        boolean addEntry​(Principal caller,
                         AclEntry entry)
                  throws NotOwnerException
        非推奨。 
        ACLエントリをこのACLに追加します。 エントリとは、主体(個人またはグループなど)をアクセス権のセットに関連付けるものです。 各主体は、正のACLエントリ(主体に与えるアクセス権を指定する)と負のACLエントリ(拒否するアクセス権を指定する)を多くても1つずつしか持つことはできません。 ACL内にすでに同じ種類(正、負)のACLエントリが存在する場合は、falseが返されます。
        パラメータ:
        caller - このメソッドを起動する主体。 このACLの所有者になっている必要がある。
        entry - このACLに追加されるACLエントリ。
        戻り値:
        成功した場合はtrue。このACLに、同じ主体に対する同じ種類(正、負)のACLエントリがすでに存在する場合はfalse。
        例外:
        NotOwnerException - 呼び出す主体がこのACLの所有者でない場合。
      • removeEntry

        boolean removeEntry​(Principal caller,
                            AclEntry entry)
                     throws NotOwnerException
        非推奨。 
        このACLから1つのACLを削除します。
        パラメータ:
        caller - このメソッドを起動する主体。 このACLの所有者になっている必要がある。
        entry - このACLから削除するACLエントリ。
        戻り値:
        成功した場合はtrue。エントリがこのACLの一部でない場合はfalse。
        例外:
        NotOwnerException - 呼び出す主体がこのACLの所有者でない場合。
      • getPermissions

        Enumeration<Permission> getPermissions​(Principal user)
        非推奨。 
        指定された主体(個人またはグループなどのエンティティを表す)に対して許可されたアクセス権のセットに対する列挙を返します。 許可されるアクセス権のセットは次のようにして決定されます。
        • 指定された主体に対して、このアクセス制御リスト中にエントリが存在しない場合は、空のアクセス権のセットが返される。
        • それ以外の場合は、指定された主体のグループ・アクセス権のセットが決定される。 (主体は1つ以上のグループに属すことができる。ここで、グループとは主体のグループのことで、Groupインタフェースによって表される)。 グループの正のアクセス権セットは、主体が属する各グループの、正のすべてのアクセス権の和集合になる。 グループの負のアクセス権セットは、主体の属する各グループの、負のすべてのアクセス権の和集合になる。 正と負の両方のアクセス権セットにあるアクセス権が存在した場合は、そのアクセス権は両方から削除される。

          個人の正と負のアクセス権セットも決定される。 正のアクセス権セットには、その主体に対する正のACLエントリで(存在する場合)指定されているアクセス権が含まれる。 同様に、負のアクセス権セットには、その主体に対する負のACLエントリで(存在する場合)指定されているアクセス権が含まれる。 個人の正(または負)のアクセス権セットは、このACL内に正(または負)のACLエントリが存在しない場合はnullと見なされる。

          このあと、主体に与えられるアクセス権のセットが、個人のアクセス権をグループのアクセス権よりも常に優先するという単純なルールを使用して決定される。 すなわち、主体の個人の負のアクセス権セット(あるアクセス権の拒否)はグループの正のアクセス権セットに優先し、主体の個人の正のアクセス権セットはグループの負のアクセス権セットに優先する。

        パラメータ:
        user - そのアクセス権セットを返す主体。
        戻り値:
        主体に許可されるアクセス権を指定するアクセス権セット。
      • entries

        Enumeration<AclEntry> entries​()
        非推奨。 
        このACL内のエントリの列挙を返します。 列挙中の各要素はAclEntry型です。
        戻り値:
        このACL内のエントリの列挙。
      • checkPermission

        boolean checkPermission​(Principal principal,
                                Permission permission)
        非推奨。 
        指定された主体が指定されたアクセス権を持っているかどうかを判定します。 持っている場合はtrueを返し、そうでない場合はfalseを返します。 より詳しく説明すると、このメソッドは、指定されたアクセス権が指定された主体の許可アクセス権セットのメンバーであるかどうかを確認します。 許可アクセス権セットは、getPermissionsメソッドと同じアルゴリズムに基づいて決定されます。
        パラメータ:
        principal - 主体。有効な認証済みの主体を前提とする。
        permission - 判定対象のアクセス権。
        戻り値:
        主体が指定されたアクセス権を持つ場合はtrue、そうでない場合はfalse。
        関連項目:
        getPermissions(java.security.Principal)
      • toString

        String toString​()
        非推奨。 
        ACLの内容を文字列表現で返します。
        オーバーライド:
        toString、クラス: Object
        戻り値:
        ACLの内容の文字列表現。