java.lang.Object java.security.ProtectionDomain
public class ProtectionDomain
此 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 |
构造方法详细信息 |
---|
public ProtectionDomain(CodeSource codesource, PermissionCollection permissions)
setReadOnly()
。只授予此域那些指定的权限;不参考当前的 Policy。
codesource
- 与此域关联的 codesource
permissions
- 授予此域的权限
public ProtectionDomain(CodeSource codesource, PermissionCollection permissions, ClassLoader classloader, Principal[] principals)
setReadOnly()
。授予此域的权限是动态的;它们包括传递给此构造方法的静态权限以及检查权限时当前 Policy 授予此域的任何权限。
此构造方法通常由 ClassLoaders
和 DomainCombiners
使用,它们委托 Policy
积极地关联授予此域的权限。此构造方法为 Policy provider 提供扩充 PermissionCollection 的机会以反映策略变化。
codesource
- 与此域关联的 CodeSource
permissions
- 授予此域的权限
classloader
- 与此域关联的 ClassLoader
principals
- 与此域关联的 Principals。复制数组的内容,以防随后进行修改。
Policy.refresh()
,
Policy.getPermissions(ProtectionDomain)
方法详细信息 |
---|
public final CodeSource getCodeSource()
public final ClassLoader getClassLoader()
public final Principal[] getPrincipals()
public final PermissionCollection getPermissions()
Policy.refresh()
,
Policy.getPermissions(ProtectionDomain)
public boolean implies(Permission permission)
计算的权限集合依赖于该 ProtectionDomain 是用静态的权限集合构造的还是被绑定到动态映射的权限集合。
如果 ProtectionDomain 被构造为静态绑定的
PermissionCollection,那么只会依据构造时提供的 PermissionCollection 来检查权限。
但是,如果 ProtectionDomain 是用支持动态绑定
权限的构造方法变体构造的,那么将会依据构造时提供的 PermissionCollection 和当前 Policy 绑定的组合来检查权限。
permission
- 要检查的 Permission 对象。
public String toString()