java.security

接口
异常
java.lang.Object
  继承者 java.security.ProtectionDomain

public class ProtectionDomain
     
extends Object

此 ProtectionDomain 类封装域的特征,域中包装一个类集合,在代表给定的主体集合执行这些类的实例时会授予它们一个权限集合。

在构造 ProtectionDomain 时可以对它绑定一个静态的权限集合;不管 Policy 是否有效,都会将这些权限授予域。但是,为了支持动态安全策略,也可以构造 ProtectionDomain,使得只要检查权限时就能通过当前 Policy 将其动态地映射到一个权限集合。


构造方法摘要
ProtectionDomain(CodeSource codesource, PermissionCollection permissions)
          创建具有给定 CodeSource 和 Permissions 的新 ProtectionDomain。
ProtectionDomain(CodeSource codesource, PermissionCollection permissions, ClassLoader classloader, Principal[] principals)
          创建由给定的 CodeSource、Permissions、ClassLoader 和 Principal 数组限定的新 ProtectionDomain。
 
方法摘要
 ClassLoader getClassLoader()
          返回此域的 ClassLoader。
 CodeSource getCodeSource()
          返回此域的 CodeSource。
 PermissionCollection getPermissions()
          返回授予此域的静态权限。
 Principal[] getPrincipals()
          返回此域的 principals 数组。
 boolean implies(Permission permission)
          查看此 ProtectionDomain 是否暗含了 Permission 对象中表示的权限。
 String toString()
          将 ProtectionDomain 转换成为 String。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

ProtectionDomain

public ProtectionDomain(CodeSource codesource,
                        PermissionCollection permissions)
创建具有给定 CodeSource 和 Permissions 的新 ProtectionDomain。如果 permissions 对象不为 null,那么将在传入的 Permissions 对象上调用 setReadOnly()。只授予此域那些指定的权限;不参考当前的 Policy。

参数:
codesource - 与此域关联的 codesource
permissions - 授予此域的权限

ProtectionDomain

public ProtectionDomain(CodeSource codesource,
                        PermissionCollection permissions,
                        ClassLoader classloader,
                        Principal[] principals)
创建由给定的 CodeSource、Permissions、ClassLoader 和 Principal 数组限定的新 ProtectionDomain。如果 permissions 对象不为 null,那么将在传入的 Permissions 对象上调用 setReadOnly()。授予此域的权限是动态的;它们包括传递给此构造方法的静态权限以及检查权限时当前 Policy 授予此域的任何权限。

此构造方法通常由 ClassLoadersDomainCombiners 使用,它们委托 Policy 积极地关联授予此域的权限。此构造方法为 Policy provider 提供扩充 PermissionCollection 的机会以反映策略变化。

参数:
codesource - 与此域关联的 CodeSource
permissions - 授予此域的权限
classloader - 与此域关联的 ClassLoader
principals - 与此域关联的 Principals。复制数组的内容,以防随后进行修改。
从以下版本开始:
1.4
另请参见:
Policy.refresh(), Policy.getPermissions(ProtectionDomain)
方法详细信息

getCodeSource

public final CodeSource getCodeSource()
返回此域的 CodeSource。

返回:
此域的 CodeSource,它可以为 null。
从以下版本开始:
1.2

getClassLoader

public final ClassLoader getClassLoader()
返回此域的 ClassLoader。

返回:
此域的 ClassLoader,它可以为 null。
从以下版本开始:
1.4

getPrincipals

public final Principal[] getPrincipals()
返回此域的 principals 数组。

返回:
此域非 null 的 principals 数组。每次调用此方法都返回一个新的数组。
从以下版本开始:
1.4

getPermissions

public final PermissionCollection getPermissions()
返回授予此域的静态权限。

返回:
此域的静态权限集合,它可以为 null。
另请参见:
Policy.refresh(), Policy.getPermissions(ProtectionDomain)

implies

public boolean implies(Permission permission)
查看此 ProtectionDomain 是否暗含了 Permission 对象中表示的权限。

计算的权限集合依赖于该 ProtectionDomain 是用静态的权限集合构造的还是被绑定到动态映射的权限集合。

如果 ProtectionDomain 被构造为静态绑定的 PermissionCollection,那么只会依据构造时提供的 PermissionCollection 来检查权限。

但是,如果 ProtectionDomain 是用支持动态绑定权限的构造方法变体构造的,那么将会依据构造时提供的 PermissionCollection 和当前 Policy 绑定的组合来检查权限。

参数:
permission - 要检查的 Permission 对象。
返回:
如果 "permission" 暗含此 ProtectionDomain 中,则返回 true。

toString

public String toString()
将 ProtectionDomain 转换成为 String。

覆盖:
Object 中的 toString
返回:
该对象的字符串表示形式。