Module  java.base
软件包  java.security

Class Permissions

  • All Implemented Interfaces:
    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 - 要添加的权限对象。
        异常
        SecurityException - 如果此Permissions对象被标记为只读方式。
        另请参见:
        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:
        impliesPermissionCollection
        参数
        permission - 要检查的权限对象。
        结果
        如果PermissionCollection中的权限隐含“权限”,则为true,否则为false。