java.lang.Object java.security.AccessControlContext
public final class AccessControlContext
AccessControlContext 用于基于它所封装的上下文作出系统资源访问决定。
更确切地说,它封装一个上下文并且具有单个方法 (checkPermission
),该方法等效于 AccessController 类中的 checkPermission
方法,只有一个不同点:AccessControlContext 的 checkPermission
方法基于它所封装的上下文而不是当前执行线程的上下文作出访问决定。
因此,AccessControlContext 的目的是用于那些实际需要在另一个 上下文(例如,在 worker 线程中)中执行应该在给定上下文中进行的安全检查的情形下。
AccessControlContext 通过调用 AccessController.getContext
方法创建。getContext
方法获取当前调用上下文“快照”,并将其置于它所返回的 AccessControlContext 对象中。示例调用如下:
AccessControlContext acc = AccessController.getContext()
另一上下文中的代码可以随后在以前保存的 AccessControlContext 对象上调用 checkPermission
方法。示例调用如下:
acc.checkPermission(permission)
AccessController
构造方法摘要 | |
---|---|
AccessControlContext(AccessControlContext acc, DomainCombiner combiner) 创建具有给定 AccessControlContext 和 DomainCombiner 的新 AccessControlContext 。 |
|
AccessControlContext(ProtectionDomain[] context) 创建带有给定 ProtectionDomain 集合的 AccessControlContext。 |
方法摘要 | |
---|---|
void |
checkPermission(Permission perm) 基于当前生效的安全策略和此对象中的上下文确定是否允许指定权限指示的访问请求。 |
boolean |
equals(Object obj) 检查两个 AccessControlContext 对象是否相等。 |
DomainCombiner |
getDomainCombiner() 获取与此 AccessControlContext 关联的 DomainCombiner 。 |
int |
hashCode() 返回此上下文的哈希码值。 |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public AccessControlContext(ProtectionDomain[] context)
context
- 与此上下文关联的 ProtectionDomain。从数组复制非重复域。数组的后续更改对此 AccessControlContext 没有影响。
public AccessControlContext(AccessControlContext acc, DomainCombiner combiner)
AccessControlContext
和
DomainCombiner
的新
AccessControlContext
。此构造方法将提供的
DomainCombiner
与提供的
AccessControlContext
关联起来。
acc
- 与此提供的
DomainCombiner
关联的
AccessControlContext
。
combiner
- 要与提供的
AccessControlContext
关联的
DomainCombiner
。
NullPointerException
- 如果提供的
context
为
null
。
SecurityException
- 如果调用者没有调用此构造方法的权限。
方法详细信息 |
---|
public DomainCombiner getDomainCombiner()
AccessControlContext
关联的
DomainCombiner
。
AccessControlContext
关联的
DomainCombiner
;如果关联项不存在,则返回
null
。
SecurityException
- 如果调用者没有获取与此
AccessControlContext
关联的
DomainCombiner
的权限。
public void checkPermission(Permission perm) throws AccessControlException
如果允许访问请求,则此方法正常返回;否则抛出适当的 AccessControlException。
perm
- 请求的权限。
AccessControlException
- 如果基于当前的安全策略和此对象所封装的上下文不允许指定权限。
NullPointerException
- 如果要检查的权限为 null。
public boolean equals(Object obj)
obj
- 要与此对象进行相等性测试的对象。
Object.hashCode()
,
Hashtable
public int hashCode()
Object.equals(java.lang.Object)
,
Hashtable