JavaTM 2 Platform
Std. Ed. v1.3

java.security.acl
インタフェース Acl

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

public interface Acl
extends Owner

アクセス制御リスト (ACL: Access Control List) を表すインタフェースです。ACL は、リソースに対するアクセスを保護するデータ構造体です。

ACL は、複数の ACL エントリを持つデータ構造体と見なすことができます。interface 型 AclEntry の各 ACL エントリには、特定の主体に関連するアクセス権のセットが含まれます (主体とは、個人ユーザやグループなどのエンティティを表す)。さらに、各 ACL エントリには正または負の符号を付けて指定します。正の場合は、関連する主体にアクセス権が与えられます。負の場合は、アクセス権は拒否されます。

各 ACL 中の ACL エントリは以下の規則に従います。

java.security.acl パッケージは、ACL と関連するデータ構造体 (ACL エントリ、グループ、アクセス権など) に対するインタフェースを提供し、sun.security.acl クラスは、インタフェースのデフォルトの実装を提供します。たとえば、java.security.acl.Acl は ACL に対するインタフェースを提供し、sun.security.acl.AclImpl クラスはそのインタフェースのデフォルトの実装を提供します。

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

関連項目:
AclEntry, Owner, getPermissions(java.security.Principal)

メソッドの概要
 boolean addEntry(Principal caller, AclEntry entry)
          ACL エントリをこの ACL に追加します。
 boolean checkPermission(Principal principal, Permission permission)
          主体が、指定されたアクセス権を持っているかどうかを判定します。
 Enumeration entries()
          この ACL 内のエントリの列挙を返します。
 String getName()
          この ACL の名前を返します。
 Enumeration getPermissions(Principal user)
          指定された主体 (個人またはグループなどのエンティティを表す) に対して許可されたアクセス権のセットに対する列挙を返します。
 boolean removeEntry(Principal caller, AclEntry entry)
          この ACL から 1 つの ACL を削除します。
 void setName(Principal caller, String name)
          ACL エントリをこの ACL に追加します。
 String toString()
          ACL の内容を文字列表現で返します。
 
インタフェース java.security.acl.Owner から継承したメソッド
addOwner, deleteOwner, isOwner
 

メソッドの詳細

setName

public void setName(Principal caller,
                    String name)
             throws NotOwnerException
ACL エントリをこの ACL に追加します。
パラメータ:
caller - このメソッドを起動する主体。この ACL の所有者でなければならない
name - この ACL に与える名前
例外:
NotOwnerException - 呼び出す主体がこの ACL の所有者でない場合

getName

public String getName()
この ACL の名前を返します。
戻り値:
この ACL の名前

addEntry

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

removeEntry

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

getPermissions

public Enumeration getPermissions(Principal user)
指定された主体 (個人またはグループなどのエンティティを表す) に対して許可されたアクセス権のセットに対する列挙を返します。許可されるアクセス権のセットは以下のようにして決定されます。

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

entries

public Enumeration entries()
この ACL 内のエントリの列挙を返します。列挙中の各要素は AclEntry 型です。
戻り値:
この ACL 内のエントリの列挙

checkPermission

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

toString

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

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.