- java.lang.Object
-
- java.security.ProtectionDomain
-
public class ProtectionDomain extends Object
ProtectionDomain类封装了域的特征,该域包含一组类,这些类的实例在代表给定的Principal集执行时被授予一组权限。一组静态权限可以在构造时绑定到ProtectionDomain; 无论有效的策略如何,都会向域授予此类权限。 但是,为了支持动态安全策略,还可以构造ProtectionDomain,以便在检查权限时由当前Policy动态映射到一组权限。
- 从以下版本开始:
- 1.2
-
-
构造方法摘要
构造方法 构造器 描述 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()
返回此域的主体数组。boolean
implies(Permission perm)
检查并查看此ProtectionDomain是否隐含Permission对象中表示的权限。boolean
staticPermissionsOnly()
如果此域仅包含静态权限,并且在权限检查时未检查当前的Policy
,则返回true。String
toString()
将ProtectionDomain转换为String。
-
-
-
构造方法详细信息
-
ProtectionDomain
public ProtectionDomain(CodeSource codesource, PermissionCollection permissions)
使用给定的CodeSource和Permissions创建新的ProtectionDomain。 如果权限对象不为null,则将在传入的Permissions对象上调用setReadOnly()
。授予此域的权限是静态的,即调用
staticPermissionsOnly()
方法返回true。 它们只包含传递给此构造函数的那些,并且不会查询当前的策略。- 参数
-
codesource
- 与此域关联的codesource -
permissions
- 授予此域的权限
-
ProtectionDomain
public ProtectionDomain(CodeSource codesource, PermissionCollection permissions, ClassLoader classloader, Principal[] principals)
创建由给定CodeSource,Permissions,ClassLoader和Principal数组限定的新ProtectionDomain。 如果权限对象不为null,则将在传入的Permissions对象上调用setReadOnly()
。授予此域的权限是动态的,即调用
staticPermissionsOnly()
方法返回false。 它们包括传递给此构造函数的静态权限,以及在检查权限时由当前策略授予此域的任何权限。此构造函数通常由
ClassLoaders
和DomainCombiners
使用,它委派给Policy
以主动关联授予此域的权限。 此构造函数为策略提供程序提供了扩充提供的PermissionCollection以反映策略更改的机会。- 参数
-
codesource
- 与此域关联的CodeSource -
permissions
- 授予此域的权限 -
classloader
- 与此域关联的ClassLoader -
principals
- 与此域关联的Principal数组。 复制数组的内容以防止后续修改。 - 从以下版本开始:
- 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()
返回此域的主体数组。- 结果
- 此域的非null主体数组。 每次调用此方法时返回一个新数组。
- 从以下版本开始:
- 1.4
-
getPermissions
public final PermissionCollection getPermissions()
返回授予此域的静态权限。- 结果
- 此域的静态权限集可能为null。
- 另请参见:
-
Policy.refresh()
,Policy.getPermissions(ProtectionDomain)
-
staticPermissionsOnly
public final boolean staticPermissionsOnly()
如果此域仅包含静态权限,并且在权限检查时未检查当前的Policy
,则返回true。- 结果
- 如果此域仅包含静态权限,则为true。
- 从以下版本开始:
- 9
-
implies
public boolean implies(Permission perm)
检查并查看此ProtectionDomain是否隐含Permission对象中表示的权限。评估的权限集是ProtectionDomain是使用静态权限集构造还是绑定到动态映射权限集的函数。
如果
staticPermissionsOnly()
方法返回true,则仅根据构造时提供的PermissionCollection检查权限。否则,将根据构造中提供的PermissionCollection和当前Policy绑定的组合检查权限。
- 参数
-
perm
- 要检查的Permission对象。 - 结果
-
如果此ProtectionDomain隐含
perm
则返回true。
-
-