public class ProtectionDomain extends Object
此ProtectionDomain类封装了一个域的特征,该域包含一组类,当代表一组给定的主体执行时,实例被授予一组权限。
一个静态权限集可以在构建时绑定到一个ProtectionDomain; 不管有效的政策如何,这种权限都被授予域。 但是,为了支持动态安全策略,还可以构建一个ProtectionDomain,使得当检查权限时,它将被动态映射到当前策略的一组权限。
Constructor and Description |
---|
ProtectionDomain(CodeSource codesource, PermissionCollection permissions)
使用给定的CodeSource和权限创建一个新的ProtectionDomain。
|
ProtectionDomain(CodeSource codesource, PermissionCollection permissions, ClassLoader classloader, Principal[] principals)
创建一个由给定的CodeSource,Permissions,ClassLoader和Principals数组限定的新的ProtectionDomain。
|
Modifier and Type | Method and Description |
---|---|
ClassLoader |
getClassLoader()
返回此域的ClassLoader。
|
CodeSource |
getCodeSource()
返回此域的CodeSource。
|
PermissionCollection |
getPermissions()
返回授予此域的静态权限。
|
Principal[] |
getPrincipals()
返回此域的主体数组。
|
boolean |
implies(Permission permission)
检查并看看ProtectionDomain是否隐含在Permission对象中表达的权限。
|
String |
toString()
将ProtectionDomain转换为字符串。
|
public ProtectionDomain(CodeSource codesource, PermissionCollection permissions)
setReadOnly())
将被传入Permissions对象中。
授予此域的唯一权限是指定的;
目前的政策将不会被查阅。
codesource
- 与此域相关
codesource
的代码源
permissions
- 授予此域的权限
public ProtectionDomain(CodeSource codesource, PermissionCollection permissions, ClassLoader classloader, Principal[] principals)
setReadOnly()
将在传入的Permissions对象中被调用。
授予此域的权限是动态的;
它们包括传递给此构造函数的静态权限以及当前策略在选中权限时授予此域的任何权限。
该构造函数通常由ClassLoaders
和DomainCombiners
使用 ,委托给Policy
以主动关联授予此域的权限。 此构造函数为策略提供者提供了增加提供的PermissionCollection以反映策略更改的机会。
codesource
- 与此域相关联的CodeSource
permissions
- 授予此域的权限
classloader
- 与此域相关联的ClassLoader
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构造为statically bound
PermissionCollection,那么只能根据构建中提供的PermissionCollection进行权限检查。
但是,如果ProtectionDomain构造为支持dynamically binding
权限的构造函数变体,那么将根据构造中提供的PermissionCollection和当前的Policy绑定来组合权限。
permission
- 要检查的权限对象。