java.lang.Object
java.security.ProtectionDomain
ProtectionDomain
类封装了一个域的特征,该域包含一组类的实例,当代表给定一组主体执行时,这些实例被授予一组权限。
在构造ProtectionDomain
时可以将静态权限集绑定到它;无论当前生效的策略如何,这些权限都将授予该域。然而,为了支持动态安全策略,也可以构造ProtectionDomain
,使其在检查权限时动态映射到一组权限,由当前策略确定。
- 自版本:
- 1.2
-
Constructor Summary
ConstructorDescriptionProtectionDomain
(CodeSource codesource, PermissionCollection permissions) 创建一个具有给定CodeSource
和权限的新ProtectionDomain
。ProtectionDomain
(CodeSource codesource, PermissionCollection permissions, ClassLoader classloader, Principal[] principals) 创建一个由给定CodeSource
、权限、ClassLoader
和主体数组限定的新ProtectionDomain
。 -
Method Summary
Modifier and TypeMethodDescriptionfinal ClassLoader
返回此域的ClassLoader
。final CodeSource
返回此域的CodeSource
。final PermissionCollection
返回授予此域的静态权限。final Principal[]
返回此域的主体数组。boolean
implies
(Permission perm) 检查此ProtectionDomain
是否包含Permission
对象中表达的权限。final boolean
如果此域仅包含静态权限且在检查权限时不检查当前Policy
,则返回true
。toString()
将ProtectionDomain
转换为String
。
-
Constructor Details
-
ProtectionDomain
创建一个具有给定CodeSource
和权限的新ProtectionDomain
。如果权限不为null
,则会在传入的权限上调用setReadOnly()
。授予此域的权限是静态的,即调用
staticPermissionsOnly()
方法将返回true
。它们仅包含传递给此构造函数的权限和当前策略不会被查询。- 参数:
-
codesource
- 与此域关联的代码源 -
permissions
- 授予此域的权限
-
ProtectionDomain
public ProtectionDomain(CodeSource codesource, PermissionCollection permissions, ClassLoader classloader, Principal[] principals) 创建一个由给定CodeSource
、权限、ClassLoader
和主体数组限定的新ProtectionDomain
。如果权限不为null
,则会在传入的权限上调用setReadOnly()
。授予此域的权限是动态的,即调用
staticPermissionsOnly()
方法将返回false
。它们包括传递给此构造函数的静态权限以及在检查权限时当前策略授予此域的任何权限。此构造函数通常由委托给
Policy
对象的ClassLoaders
和DomainCombiners
使用,以积极地关联授予此域的权限。此构造函数为策略提供者提供了机会,以反映策略更改来增强提供的PermissionCollection
。- 参数:
-
codesource
- 与此域关联的CodeSource
-
permissions
- 授予此域的权限 -
classloader
- 与此域关联的ClassLoader
-
principals
- 与此域关联的Principal
对象数组。数组的内容会被复制以防止后续修改。 - 自版本:
- 1.4
- 参见:
-
-
Method Details
-
getCodeSource
返回此域的CodeSource
。- 返回:
-
此域的
CodeSource
,可能为null
。 - 自版本:
- 1.2
-
getClassLoader
返回此域的ClassLoader
。- 返回:
-
此域的
ClassLoader
,可能为null
。 - 自版本:
- 1.4
-
getPrincipals
返回此域的主体数组。- 返回:
- 此域的非空主体数组。每次调用此方法时都会返回一个新数组。
- 自版本:
- 1.4
-
getPermissions
返回授予此域的静态权限。- 返回:
-
此域的静态权限集,可能为
null
。 - 参见:
-
staticPermissionsOnly
public final boolean staticPermissionsOnly()如果此域仅包含静态权限且在检查权限时不检查当前Policy
,则返回true
。- 返回:
-
如果此域仅包含静态权限,则返回
true
。 - 自版本:
- 9
-
implies
检查此ProtectionDomain
是否包含Permission
对象中表达的权限。评估的权限集取决于
ProtectionDomain
是使用静态权限集构造的还是绑定到动态映射的权限集。如果
staticPermissionsOnly()
方法返回true
,则权限将仅针对构造时提供的PermissionCollection
进行检查。否则,权限将针对构造时提供的
PermissionCollection
和当前策略绑定的组合进行检查。- 参数:
-
perm
- 要检查的Permission
对象。 - 返回:
-
如果
perm
由此ProtectionDomain
隐含,则返回true
。
-
toString
将ProtectionDomain
转换为String
。
-