模块  java.base
软件包  java.security

Class Permissions

  • 实现的所有接口
    Serializable

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

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

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

    从以下版本开始:
    1.2
    另请参见:
    PermissionPermissionCollectionAllPermission
    • 构造方法详细信息

      • Permissions

        public Permissions()
        创建一个不包含PermissionCollections的新Permissions对象。
    • 方法详细信息

      • add

        public void add​(Permission permission)
        将权限对象添加到权限所属的类的PermissionCollection。 例如,如果权限是FilePermission,则将其添加到存储在此Permissions对象中的FilePermissionCollection。 如果尚不存在适当的集合,此方法将创建新的PermissionCollection对象(并向其添加权限)。
        Specified by:
        add在课程 PermissionCollection
        参数
        permission - 要添加的Permission对象。
        异常
        SecurityException - 如果此权限对象标记为只读。
        另请参见:
        PermissionCollection.isReadOnly()
      • implies

        public boolean implies​(Permission permission)
        检查此对象的PermissionCollection是否具有指定权限类的权限,这意味着权限对象中表示的权限 如果适当的PermissionCollection中的权限组合(例如,FilePermission的FilePermissionCollection)一起暗示指定的权限,则返回true。

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

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

        Specified by:
        implies在类 PermissionCollection
        参数
        permission - 要检查的Permission对象。
        结果
        如果它所属的PermissionCollection中的权限暗示“permission”,则返回true,否则返回false。