模块  java.base
软件包  java.security.acl

Interface Acl

  • 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 by java.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
    另请参见:
    AclEntryOwnergetPermissions(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内容的字符串表示形式。
    • 方法详细信息

      • 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()
      • 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)
      • toString

        String toString()
        Deprecated, for removal: This API element is subject to removal in a future version.
        返回ACL内容的字符串表示形式。
        重写:
        toStringObject
        结果
        ACL内容的字符串表示形式。