java.security

接口
异常
java.lang.Object
  继承者 java.security.PermissionCollection
      继承者 java.security.Permissions
所有已实现的接口:
Serializable

public final class Permissions
     
extends PermissionCollection
implements Serializable

此类表示一个不同种类的 Permission 集合。也就是说,它包含组编到 PermissionCollection 中的不同类型的 Permission 对象。例如,如果将任何 java.io.FilePermission 对象添加到此类的实例中,它们都将被存储在单个 PermissionCollection 中。调用 FilePermission 类的 newPermissionCollection 方法返回的是 PermissionCollection。类似的,任何 java.lang.RuntimePermission 对象都存储在调用 RuntimePermission 类的 newPermissionCollection 方法所返回的 PermissionCollection 中。因此,此类表示 PermissionCollection 的集合。

当调用 add 方法添加 Permission 时,Permission 将被存储在合适的 PermissionCollection 中。如果还没有这样的集合存在,则确定 Permission 对象的类并对该类调用 newPermissionCollection 方法来创建 PermissionCollection,然后将其添加到 Permissions 对象中。如果 newPermissionCollection 返回 null,那么将创建和使用一个默认使用 hashtable 的 PermissionCollection。每个 hashtable 项存储了一个 Permission 对象作为键和值。

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

另请参见:
Permission, PermissionCollection, AllPermission

构造方法摘要
Permissions()
          创建一个不包含任何 PermissionCollection 的新 Permissions 对象。
 
方法摘要
 void add(Permission permission)
          将一个 permission 对象添加到该权限所属的类的 PermissionCollection 中。
 Enumeration<Permission> elements()
          返回此 Permissions 对象中所有 PermissionCollection 中的所有 Permission 对象的枚举。
 boolean implies(Permission permission)
          查看此对象用于指定 permission 类的 permissions 的 PermissionCollection 是否暗含了 permission 对象中表示的权限。
 
从类 java.security.PermissionCollection 继承的方法
isReadOnly, setReadOnly, toString
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

Permissions

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

方法详细信息

add

public void add(Permission permission)
将一个 permission 对象添加到该权限所属的类的 PermissionCollection 中。例如,如果 permission 是 FilePermission,则将它添加到存储在此 Permissions 对象中的 FilePermissionCollection 中。 如果不存在合适的 collection,则此方法创建一个新的 PermissionCollection 对象(并且向其中添加权限)。

指定者:
PermissionCollection 中的 add
参数:
permission - 要添加的 Permission 对象。
抛出:
SecurityException - 如果此 Permissions 对象被标记为只读。
另请参见:
PermissionCollection.isReadOnly()

implies

public boolean implies(Permission permission)
查看此对象用于指定 permission 类的 permissions 的 PermissionCollection 是否暗含了 permission 对象中表示的权限。如果合适的 PermissionCollection(例如,用于 FilePermission 的 FilePermissionCollection)中权限的组合一起暗含了指定的权限,则返回 true。

例如,假定在此 Permissions 对象中有一个 FilePermissionCollection,它包含一个指定对 "/tmp" 目录所有子目录下的所有文件进行 "read" 访问的 FilePermission,以及另一个指定对 "/tmp/scratch/foo" 目录下所有文件进行 "write" 访问的 FilePermission。那么如果使用指定对 "/tmp/scratch/foo" 目录下的文件进行 "read" 和 "write" 访问权限的 permission 作为参数调用 implies 方法,则返回 true

此外,如果此 PermissionCollection 包含 AllPermission,此方法将总是返回 true。

指定者:
PermissionCollection 中的 implies
参数:
permission - 要检查的 Permission 对象。
返回:
如果 "permission" 所属的 PermissionCollection 中的权限暗含了 "permission",则返回 true;否则,返回 false。

elements

public Enumeration<Permission> elements()
返回此 Permissions 对象中所有 PermissionCollection 中的所有 Permission 对象的枚举。

指定者:
PermissionCollection 中的 elements
返回:
所有 Permission 的枚举。