Module java.base
Package java.security

Class Permissions

所有已实现的接口:
Serializable

public final class Permissions extends PermissionCollection implements Serializable
这个类表示一个异构的权限集合。也就是说,它包含不同类型的Permission对象,组织成PermissionCollection对象。例如,如果向这个类的实例添加了任何java.io.FilePermission对象,它们都将存储在单个PermissionCollection中。这是通过调用FilePermission类中的newPermissionCollection方法返回的PermissionCollection。同样,任何java.lang.RuntimePermission对象都存储在通过调用RuntimePermission类中的newPermissionCollection方法返回的PermissionCollection中。因此,这个类表示了一个PermissionCollection对象的集合。

当调用add方法添加一个Permission时,该Permission将存储在适当的PermissionCollection中。如果尚未存在这样的集合,则确定Permission对象的类,并在该类上调用newPermissionCollection方法以创建PermissionCollection并将其添加到Permissions对象中。如果newPermissionCollection返回null,则将创建并使用一个使用哈希表的默认PermissionCollection。每个哈希表条目都将Permission对象作为键和值存储。

通过elements方法返回的枚举不是快速失败的。在枚举集合时不应执行对集合的修改。

自从:
1.2
参见:
  • Constructor Details

    • Permissions

      public Permissions()
      创建一个不包含任何PermissionCollection对象的新Permissions对象。
  • Method Details

    • add

      public void add(Permission permission)
      将一个Permission对象添加到该权限所属类的PermissionCollection中。例如,如果permission是一个FilePermission,它将被添加到此Permissions对象中存储的FilePermissionCollection中。如果尚不存在适当的集合,此方法将创建一个新的PermissionCollection对象(并将权限添加到其中)。
      指定者:
      add 在类 PermissionCollection
      参数:
      permission - 要添加的Permission对象。
      抛出:
      SecurityException - 如果此Permissions对象被标记为只读。
      参见:
    • implies

      public boolean implies(Permission permission)
      检查此对象的PermissionCollection中针对指定权限类的权限是否包含permission对象中表达的权限。如果适当的PermissionCollection中的权限组合(例如,FilePermissionFilePermissionCollection)一起包含指定的权限,则返回true

      例如,假设在此Permissions对象中有一个FilePermissionCollection,它包含一个指定对"/tmp"目录中所有子目录中所有文件的"读"访问权限的FilePermission,以及另一个指定对"/tmp/scratch/foo"目录中所有文件的"写"访问权限的FilePermission。然后,如果使用一个权限指定对"/tmp/scratch/foo"目录中的文件进行"读"和"写"访问的权限调用implies方法,则将返回true

      此外,如果此PermissionCollection包含AllPermission,则此方法将始终返回true

      指定者:
      implies 在类 PermissionCollection
      参数:
      permission - 要检查的Permission对象。
      返回:
      如果permission被所属PermissionCollection中的权限所包含,则返回true,否则返回false
    • elements

      public Enumeration<Permission> elements()
      返回此Permissions对象中所有PermissionCollection对象中所有Permission对象的枚举。
      指定者:
      elements 在类 PermissionCollection
      返回:
      所有Permission对象的枚举。
      参见: