Most visited

Recently visited

Added in API level 1

Acl

public interface Acl
implements Owner

java.security.acl.Acl


代表访问控制列表(ACL)的接口。 访问控制列表是一种用于保护资源访问的数据结构。

ACL可以被认为是具有多个ACL条目的数据结构。 接口类型为AclEntry的每个ACL条目都包含一组与特定主体关联的权限。 (主事人代表个人用户或集团等实体)。 此外,每个ACL条目都被指定为正数或负数。 如果是肯定的,则权限将被授予关联的委托人。 如果否定,权限将被拒绝。

每个ACL中的ACL条目遵守以下规则:

The java.security.acl package provides the interfaces to the ACL and related data structures (ACL entries, groups, permissions, etc.), and the sun.security.acl classes provide a default implementation of the interfaces. For example, java.security.acl.Acl provides the interface to an ACL and the sun.security.acl.AclImpl class provides the default implementation of the interface.

java.security.acl.Acl接口扩展了java.security.acl.Owner接口。 所有者接口用于维护每个ACL的所有者列表。 只有所有者才可以修改ACL。 例如,只有所有者可以调用ACL的addEntry方法来向ACL添加新的ACL条目。

也可以看看:

Summary

Public methods

abstract boolean addEntry(Principal caller, AclEntry entry)

将ACL条目添加到此ACL。

abstract boolean checkPermission(Principal principal, Permission permission)

检查指定的委托人是否具有指定的权限。

abstract Enumeration<AclEntry> entries()

返回此ACL中条目的枚举。

abstract String getName()

返回此ACL的名称。

abstract Enumeration<Permission> getPermissions(Principal user)

返回指定主体(代表个体或组等实体)的允许权限集合的枚举。

abstract boolean removeEntry(Principal caller, AclEntry entry)

从该ACL中删除ACL条目。

abstract void setName(Principal caller, String name)

设置此ACL的名称。

abstract String toString()

返回ACL内容的字符串表示形式。

Inherited methods

From interface java.security.acl.Owner

Public methods

addEntry

Added in API level 1
boolean addEntry (Principal caller, 
                AclEntry entry)

将ACL条目添加到此ACL。 一个条目将委托人(例如,个人或团体)与一组权限相关联。 每个主体最多可以有一个肯定的ACL条目(指定授予主体的权限)和一个否定ACL条目(指定拒绝权限)。 如果ACL中已经有相同类型的ACL条目(负值或正值),则返回false。

Parameters
caller Principal: the principal invoking this method. It must be an owner of this ACL.
entry AclEntry: the ACL entry to be added to this ACL.
Returns
boolean true on success, false if an entry of the same type (positive or negative) for the same principal is already present in this ACL.
Throws
NotOwnerException if the caller principal is not an owner of this ACL.

checkPermission

Added in API level 1
boolean checkPermission (Principal principal, 
                Permission permission)

检查指定的委托人是否具有指定的权限。 如果是,则返回true,否则返回false。 更具体地说,该方法检查传递的权限是否是指定主体的允许权限集的成员。 允许的权限集由与getPermissions方法所使用的算法相同的算法确定。

Parameters
principal Principal: the principal, assumed to be a valid authenticated Principal.
permission Permission: the permission to be checked for.
Returns
boolean true if the principal has the specified permission, false otherwise.

也可以看看:

entries

Added in API level 1
Enumeration<AclEntry> entries ()

返回此ACL中条目的枚举。 枚举中的每个元素都是AclEntry类型。

Returns
Enumeration<AclEntry> an enumeration of the entries in this ACL.

getName

Added in API level 1
String getName ()

返回此ACL的名称。

Returns
String the name of this ACL.

也可以看看:

getPermissions

Added in API level 1
Enumeration<Permission> getPermissions (Principal user)

返回指定主体(代表个体或组等实体)的允许权限集合的枚举。 这组允许的权限计算如下:

  • If there is no entry in this Access Control List for the specified principal, an empty permission set is returned.

  • Otherwise, the principal's group permission sets are determined. (A principal can belong to one or more groups, where a group is a group of principals, represented by the Group interface.) The group positive permission set is the union of all the positive permissions of each group that the principal belongs to. The group negative permission set is the union of all the negative permissions of each group that the principal belongs to. If there is a specific permission that occurs in both the positive permission set and the negative permission set, it is removed from both.

    个人正面和负面的权限集也被确定。 肯定权限集包含主体的肯定ACL条目(如果有)中指定的权限。 同样,否定权限集包含主体的否定ACL条目(如果有)中指定的权限。 如果此ACL中的主体不存在正(负)ACL条目,则单个正(或负)权限集将被视为空。

    然后使用简单的规则计算授予主体的权限集,即单个权限始终覆盖组权限。 也就是说,委托人的个人否定权限集(特定拒绝权限)会覆盖组的正面权限集,而委托人的个人肯定权限集会覆盖组负面权限集。

Parameters
user Principal: the principal whose permission set is to be returned.
Returns
Enumeration<Permission> the permission set specifying the permissions the principal is allowed.

removeEntry

Added in API level 1
boolean removeEntry (Principal caller, 
                AclEntry entry)

从该ACL中删除ACL条目。

Parameters
caller Principal: the principal invoking this method. It must be an owner of this ACL.
entry AclEntry: the ACL entry to be removed from this ACL.
Returns
boolean true on success, false if the entry is not part of this ACL.
Throws
NotOwnerException if the caller principal is not an owner of this Acl.

setName

Added in API level 1
void setName (Principal caller, 
                String name)

设置此ACL的名称。

Parameters
caller Principal: the principal invoking this method. It must be an owner of this ACL.
name String: the name to be given to this ACL.
Throws
NotOwnerException if the caller principal is not an owner of this ACL.

也可以看看:

toString

Added in API level 1
String toString ()

返回ACL内容的字符串表示形式。

Returns
String a string representation of the ACL contents.

Hooray!