java.lang.Object
java.security.AccessControlContext
Deprecated, for removal: This API element is subject to removal in a future version.
This class is only useful in conjunction with the Security Manager, which is deprecated and subject to removal in a future release. Consequently, this class is also deprecated and subject to removal. There is no replacement for the Security Manager or this class.
一个
AccessControlContext
用于根据其封装的上下文做出系统资源访问决策。
更具体地说,它封装了一个上下文,并且有一个单一方法checkPermission
,该方法等同于AccessController
类中的checkPermission
方法,但有一个区别:checkPermission
方法基于其封装的上下文做出访问决策,而不是当前执行线程的上下文。
因此,AccessControlContext
的目的是用于那些需要在给定上下文内进行安全检查,实际上需要从一个不同的上下文(例如,从一个工作线程内部)进行的情况。
通过调用AccessController.getContext
方法创建一个AccessControlContext
。 getContext
方法获取当前调用上下文的“快照”,并将其放入一个AccessControlContext
对象中,然后返回该对象。示例调用如下:
AccessControlContext acc = AccessController.getContext()
随后在不同上下文中的代码可以调用先前保存的AccessControlContext
对象上的checkPermission
方法。示例调用如下:
acc.checkPermission(permission)
- 自版本:
- 1.2
- 参见:
-
Constructor Summary
ConstructorDescriptionAccessControlContext
(AccessControlContext acc, DomainCombiner combiner) 已弃用,将来会移除:此API元素可能会在将来的版本中移除。使用给定的AccessControlContext
和DomainCombiner
创建一个新的AccessControlContext
。AccessControlContext
(ProtectionDomain[] context) 已弃用,将来会移除:此API元素可能会在将来的版本中移除。使用给定的ProtectionDomain
对象数组创建一个AccessControlContext
。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
checkPermission
(Permission perm) 已弃用,将来会移除:此API元素可能会在将来的版本中移除。根据当前生效的安全策略和此对象中的上下文,确定指定权限所指示的访问请求是否应允许或拒绝。boolean
已弃用,将来会移除:此API元素可能会在将来的版本中移除。检查两个AccessControlContext
对象是否相等。已弃用,将来会移除:此API元素可能会在将来的版本中移除。获取与此AccessControlContext
关联的DomainCombiner
。int
hashCode()
已弃用,将来会移除:此API元素可能会在将来的版本中移除。返回此上下文的哈希码值。
-
Constructor Details
-
AccessControlContext
Deprecated, for removal: This API element is subject to removal in a future version.使用给定的ProtectionDomain
对象数组创建一个AccessControlContext
。上下文不能为空。将从上下文中删除重复的域。- 参数:
-
context
- 与此上下文关联的ProtectionDomain
对象。非重复域将从数组中复制。对数组的后续更改不会影响此AccessControlContext
。 - 抛出:
-
NullPointerException
- 如果context
为null
-
AccessControlContext
Deprecated, for removal: This API element is subject to removal in a future version.使用给定的AccessControlContext
和DomainCombiner
创建一个新的AccessControlContext
。此构造函数将提供的DomainCombiner
与提供的AccessControlContext
关联。- 参数:
-
acc
- 与提供的DomainCombiner
关联的AccessControlContext
。 -
combiner
- 与提供的AccessControlContext
关联的DomainCombiner
。 - 抛出:
-
NullPointerException
- 如果提供的context
为null
。 -
SecurityException
- 如果安装了安全管理器且调用者没有"createAccessControlContext"SecurityPermission
- 自版本:
- 1.3
-
-
Method Details
-
getDomainCombiner
Deprecated, for removal: This API element is subject to removal in a future version.获取与此AccessControlContext
关联的DomainCombiner
。- 返回:
-
与此
AccessControlContext
关联的DomainCombiner
,如果没有则返回null
。 - 抛出:
-
SecurityException
- 如果安装了安全管理器且调用者没有"getDomainCombiner"SecurityPermission
- 自版本:
- 1.3
-
checkPermission
Deprecated, for removal: This API element is subject to removal in a future version.根据当前生效的安全策略和此对象中的上下文,确定指定权限所指示的访问请求是否应允许或拒绝。仅当上下文中的每个ProtectionDomain
都暗示该权限时,才允许该请求。否则将拒绝该请求。如果访问请求被允许,此方法将静默返回;否则将抛出适当的
AccessControlException
。- 参数:
-
perm
- 请求的权限。 - 抛出:
-
AccessControlException
- 如果根据当前安全策略和此对象封装的上下文,指定的权限不被允许。 -
NullPointerException
- 如果要检查的权限为null
。
-
equals
Deprecated, for removal: This API element is subject to removal in a future version.检查两个AccessControlContext
对象是否相等。检查obj
是否为AccessControlContext
,并且具有与此上下文相同的ProtectionDomain
对象集。 -
hashCode
public int hashCode()Deprecated, for removal: This API element is subject to removal in a future version.返回此上下文的哈希码值。哈希码通过对上下文中所有保护域的哈希码进行异或运算得出。
-