public final class AccessControlContext extends Object
更具体地,它封装了一个上下文,并且具有单一的方法, checkPermission
,即相当于checkPermission
在AccessController类方法,有一点不同:所述的AccessControlContext checkPermission
方法使得访问决策基于它所封装的上下文,而不是的当前执行线程。
因此,AccessControlContext的目的是针对那些在给定上下文中应该进行安全检查的情况,实际上需要从不同的上下文(例如,从工作线程中)完成。
通过调用AccessController.getContext
方法创建AccessController.getContext
。 getContext
方法使用当前调用上下文的“快照”,并将其放置在AccessControlContext对象中,该对象返回。 示例呼叫如下:
AccessControlContext acc = AccessController.getContext()
不同的上下文中的代码可以随后调用checkPermission
先前保存的AccessControlContext对象上的方法。 示例呼叫如下:
acc.checkPermission(permission)
AccessController
Constructor and Description |
---|
AccessControlContext(AccessControlContext acc, DomainCombiner combiner)
创建一个新的
AccessControlContext 与给定的
AccessControlContext 和
DomainCombiner 。
|
AccessControlContext(ProtectionDomain[] context)
使用给定的ProtectionDomains数组创建一个AccessControlContext。
|
Modifier and Type | Method and Description |
---|---|
void |
checkPermission(Permission perm)
根据当前有效的安全策略以及此对象中的上下文确定是否允许或拒绝由指定权限指定的访问请求。
|
boolean |
equals(Object obj)
检查两个AccessControlContext对象的相等性。
|
DomainCombiner |
getDomainCombiner()
获取
DomainCombiner 与此相关
AccessControlContext 。
|
int |
hashCode()
返回此上下文的哈希码值。
|
public AccessControlContext(ProtectionDomain[] context)
context
- 与此上下文相关联的ProtectionDomains。
不重复的域从数组复制。
对数组的后续更改不会影响此AccessControlContext。
NullPointerException
- 如果
context
是
null
public AccessControlContext(AccessControlContext acc, DomainCombiner combiner)
AccessControlContext
与给定的AccessControlContext
和DomainCombiner
。
该构造函数将提供的DomainCombiner
与提供的AccessControlContext
。
acc
-在
AccessControlContext
与所提供的相关
DomainCombiner
。
combiner
-所述
DomainCombiner
至与所提供的相关联
AccessControlContext
。
NullPointerException
- 如果提供的
context
是
null
。
SecurityException
- 如果安装了一个安全管理器,并且调用者没有“createAccessControlContext” SecurityPermission
public DomainCombiner getDomainCombiner()
DomainCombiner
与此相关
AccessControlContext
。
DomainCombiner
与此
AccessControlContext
,如果没有,
null
。
SecurityException
- 如果安装了一个安全管理器,并且调用者没有“getDomainCombiner” SecurityPermission
public void checkPermission(Permission perm) throws AccessControlException
如果允许访问请求,此方法静默返回,否则抛出适当的AccessControlException。
perm
- 请求的权限。
AccessControlException
- 如果不允许指定的权限,则基于当前安全策略和此对象封装的上下文。
NullPointerException
- 如果要检查的权限为空。
public boolean equals(Object obj)
equals
在
Object
obj
- 我们正在测试与此对象相等的对象。
Object.hashCode()
, HashMap
public int hashCode()
hashCode
在
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)