public interface Acl extends Owner
ACL可以被认为是具有多个ACL条目的数据结构。 接口类型为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
接口。 所有者界面用于维护每个ACL的所有者的列表。 只允许所有者修改ACL。 例如,只有所有者可以调用ACL的addEntry
方法来向ACL添加新的ACL条目。
Modifier and Type | Method and Description |
---|---|
boolean |
addEntry(Principal caller, AclEntry entry)
向此ACL添加ACL条目。
|
boolean |
checkPermission(Principal principal, Permission permission)
检查指定的委托人是否具有指定的权限。
|
Enumeration<AclEntry> |
entries()
返回此ACL中条目的枚举。
|
String |
getName()
返回此ACL的名称。
|
Enumeration<Permission> |
getPermissions(Principal user)
返回指定主体的一组允许权限的枚举(表示一个实体,如个人或组)。
|
boolean |
removeEntry(Principal caller, AclEntry entry)
从此ACL中删除ACL条目。
|
void |
setName(Principal caller, String name)
设置此ACL的名称。
|
String |
toString()
返回ACL内容的字符串表示形式。
|
addOwner, deleteOwner, isOwner
void setName(Principal caller, String name) throws NotOwnerException
caller
- 调用此方法的主体。
它必须是此ACL的所有者。
name
- 要提供给此ACL的名称。
NotOwnerException
- 如果调用者主体不是此ACL的所有者。
getName()
String getName()
setName(java.security.Principal, java.lang.String)
boolean addEntry(Principal caller, AclEntry entry) throws NotOwnerException
caller
- 调用此方法的主体。
它必须是此ACL的所有者。
entry
- 要添加到此ACL的ACL条目。
NotOwnerException
- 如果调用者主体不是此ACL的所有者。
boolean removeEntry(Principal caller, AclEntry entry) throws NotOwnerException
caller
- 调用此方法的主体。
它必须是此ACL的所有者。
entry
- 要从此ACL删除的ACL条目。
NotOwnerException
- 如果调用者主体不是此Acl的所有者。
Enumeration<Permission> getPermissions(Principal user)
也确定了个人的正面和负面的权限集。 正面的权限集包含主体的正面ACL条目(如果有)中指定的权限。 同样,负权限集包含在主体的负ACL条目(如果有)中指定的权限。 如果此ACL中的主体不存在正(负)ACL条目,那么单个正(或否)权限集将被视为null。
然后,使用简单规则计算授予主体的权限集,即单个权限始终覆盖组权限。 也就是说,委托人的个人否定权限集(特定拒绝权限)将覆盖组正面权限集,并且主体的单个正面权限集覆盖组负权限集。
user
- 要返回其权限集的主体。
Enumeration<AclEntry> entries()
boolean checkPermission(Principal principal, Permission permission)
getPermissions
方法使用的getPermissions
相同的getPermissions
确定。
principal
- 主体,假定是有效的认证委托人。
permission
- 有待检查的权限。
getPermissions(java.security.Principal)