-
- All Superinterfaces:
-
Owner
@Deprecated(since="9", forRemoval=true) public interface Acl extends Owner
Deprecated, for removal: This API element is subject to removal in a future version.This class is deprecated and subject to removal in a future version of Java SE. It has been replaced byjava.security.Policy
and related classes since 1.2.表示访问控制列表(ACL)的接口。 访问控制列表是用于保护对资源的访问的数据结构。ACL可以被认为是具有多个ACL条目的数据结构。 接口类型为AclEntry的每个ACL条目都包含一组与特定主体关联的权限。 (委托人代表个人用户或团体等实体)。 此外,每个ACL条目都指定为正或负。 如果是肯定的,则将权限授予关联的主体。 如果为负,则拒绝权限。
每个ACL中的ACL条目遵守以下规则:
- 每个委托人最多可以有一个正ACL入口和一个负入口; 也就是说,任何主体都不允许多个正面或负面的ACL条目。 每个条目指定要授予(如果为正)或拒绝(如果为否定)的权限集。
- 如果特定主体没有条目,则认为主体具有空(空)权限集。
- 如果存在向主体授予特定权限的肯定条目,以及拒绝委托人具有相同权限的否定条目,则结果就好像从未授予或拒绝该许可。
- 个人权限始终覆盖个人所属的组的权限。 也就是说,个别否定权限(特定拒绝权限)会覆盖组的正权限。 个人肯定权限会覆盖群组的否定权限。
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)
-
-
方法摘要
所有方法 实例方法 抽象方法 弃用的方法 变量和类型 方法 描述 boolean
addEntry(Principal caller, AclEntry entry)
不推荐使用,要删除:此API元素将在以后的版本中删除。向此ACL添加ACL条目。boolean
checkPermission(Principal principal, Permission permission)
不推荐使用,要删除:此API元素将在以后的版本中删除。检查指定的主体是否具有指定的权限。Enumeration<AclEntry>
entries()
不推荐使用,要删除:此API元素将在以后的版本中删除。返回此ACL中条目的枚举。String
getName()
不推荐使用,要删除:此API元素将在以后的版本中删除。返回此ACL的名称。Enumeration<Permission>
getPermissions(Principal user)
不推荐使用,要删除:此API元素将在以后的版本中删除。返回指定主体(表示实体(如个人或组))的允许权限集的枚举。boolean
removeEntry(Principal caller, AclEntry entry)
不推荐使用,要删除:此API元素将在以后的版本中删除。从此ACL中删除ACL条目。void
setName(Principal caller, String name)
不推荐使用,要删除:此API元素将在以后的版本中删除。设置此ACL的名称。String
toString()
不推荐使用,要删除:此API元素将在以后的版本中删除。返回ACL内容的字符串表示形式。-
声明方法的接口 java.security.acl.Owner
addOwner, deleteOwner, isOwner
-
-
-
-
方法详细信息
-
setName
void setName(Principal caller, String name) throws NotOwnerException
Deprecated, for removal: This API element is subject to removal in a future version.设置此ACL的名称。- 参数
-
caller
- 调用此方法的主体。 它必须是此ACL的所有者。 -
name
- 要为此ACL指定的名称。 - 异常
-
NotOwnerException
- 如果调用者主体不是此ACL的所有者。 - 另请参见:
-
getName()
-
getName
String getName()
Deprecated, for removal: This API element is subject to removal in a future version.返回此ACL的名称。- 结果
- 此ACL的名称。
- 另请参见:
-
setName(java.security.Principal, java.lang.String)
-
addEntry
boolean addEntry(Principal caller, AclEntry entry) throws NotOwnerException
Deprecated, for removal: This API element is subject to removal in a future version.向此ACL添加ACL条目。 条目将主体(例如,个人或组)与一组权限相关联。 每个主体最多可以有一个正ACL条目(指定授予主体的权限)和一个负ACL条目(指定要拒绝的权限)。 如果ACL中已存在相同类型(负面或正面)的ACL条目,则返回false。- 参数
-
caller
- 调用此方法的主体。 它必须是此ACL的所有者。 -
entry
- 要添加到此ACL的ACL条目。 - 结果
- 成功时为true,如果此ACL中已存在相同主体的相同类型(正或负)条目,则为false。
- 异常
-
NotOwnerException
- 如果调用者主体不是此ACL的所有者。
-
removeEntry
boolean removeEntry(Principal caller, AclEntry entry) throws NotOwnerException
Deprecated, for removal: This API element is subject to removal in a future version.从此ACL中删除ACL条目。- 参数
-
caller
- 调用此方法的主体。 它必须是此ACL的所有者。 -
entry
- 要从此ACL中删除的ACL条目。 - 结果
- 成功时为true,如果该条目不是此ACL的一部分,则为false。
- 异常
-
NotOwnerException
- 如果主叫方主体不是此Acl的所有者。
-
getPermissions
Enumeration<Permission> getPermissions(Principal user)
Deprecated, for removal: This API element is subject to removal in a future version.返回指定主体(表示实体(如个人或组))的允许权限集的枚举。 这组允许的权限计算如下:- 如果此访问控制列表中没有指定主体的条目,则返回空权限集。
- 否则,确定主体的组权限集。 (主体可以属于一个或多个组,其中组是一组主体,由Group接口表示。)组肯定权限集是主体所属的每个组的所有正权限的并集。 组否定权限集是主体所属的每个组的所有否定权限的并集。 如果在肯定权限集和否定权限集中都存在特定权限,则会从两者中删除该权限。
还确定了各个正面和负面的权限集。 正权限集包含主体的正ACL条目(如果有)中指定的权限。 同样,否定权限集包含在主体的负ACL条目(如果有)中指定的权限。 如果此ACL中的主体没有正(负)ACL条目,则认为单个正(或负)权限集为空。
然后,使用单个权限始终覆盖组权限的简单规则计算授予主体的权限集。 也就是说,委托人的个人否定权限集(特定拒绝权限)会覆盖组肯定权限集,而委托人的个人正权限集会覆盖组否定权限集。
- 参数
-
user
- 要返回其权限集的主体。 - 结果
- 权限集,指定允许委托人的权限。
-
entries
Enumeration<AclEntry> entries()
Deprecated, for removal: This API element is subject to removal in a future version.返回此ACL中条目的枚举。 枚举中的每个元素都是AclEntry类型。- 结果
- 此ACL中条目的枚举。
-
checkPermission
boolean checkPermission(Principal principal, Permission permission)
Deprecated, for removal: This API element is subject to removal in a future version.检查指定的主体是否具有指定的权限。 如果是,则返回true,否则返回false。 更具体地说,此方法检查传递的权限是否是指定主体的允许权限集的成员。 允许的权限集由getPermissions
方法使用的算法确定。- 参数
-
principal
- 委托人,假定为有效的经过身份验证的委托人。 -
permission
- 要检查的权限。 - 结果
- 如果主体具有指定的权限,则返回true,否则返回false。
- 另请参见:
-
getPermissions(java.security.Principal)
-
-