Module java.base
Package java.security

Class AccessControlContext

java.lang.Object
java.security.AccessControlContext

@Deprecated(since="17", forRemoval=true) public final class AccessControlContext extends Object
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方法创建一个AccessControlContextgetContext方法获取当前调用上下文的“快照”,并将其放入一个AccessControlContext对象中,然后返回该对象。示例调用如下:

   AccessControlContext acc = AccessController.getContext()
 

随后在不同上下文中的代码可以调用先前保存的AccessControlContext对象上的checkPermission方法。示例调用如下:

   acc.checkPermission(permission)
 
自版本:
1.2
参见:
  • Constructor Summary

    Constructors
    Constructor
    Description
    已弃用,将来会移除:此API元素可能会在将来的版本中移除。
    使用给定的AccessControlContextDomainCombiner创建一个新的AccessControlContext
    已弃用,将来会移除:此API元素可能会在将来的版本中移除。
    使用给定的ProtectionDomain对象数组创建一个AccessControlContext
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    已弃用,将来会移除:此API元素可能会在将来的版本中移除。
    根据当前生效的安全策略和此对象中的上下文,确定指定权限所指示的访问请求是否应允许或拒绝。
    boolean
    equals(Object obj)
    已弃用,将来会移除:此API元素可能会在将来的版本中移除。
    检查两个AccessControlContext对象是否相等。
    已弃用,将来会移除:此API元素可能会在将来的版本中移除。
    获取与此AccessControlContext关联的DomainCombiner
    int
    已弃用,将来会移除:此API元素可能会在将来的版本中移除。
    返回此上下文的哈希码值。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AccessControlContext

      public AccessControlContext(ProtectionDomain[] context)
      Deprecated, for removal: This API element is subject to removal in a future version.
      使用给定的ProtectionDomain对象数组创建一个AccessControlContext。上下文不能为空。将从上下文中删除重复的域。
      参数:
      context - 与此上下文关联的ProtectionDomain对象。非重复域将从数组中复制。对数组的后续更改不会影响此AccessControlContext
      抛出:
      NullPointerException - 如果contextnull
    • AccessControlContext

      public AccessControlContext(AccessControlContext acc, DomainCombiner combiner)
      Deprecated, for removal: This API element is subject to removal in a future version.
      使用给定的AccessControlContextDomainCombiner创建一个新的AccessControlContext。此构造函数将提供的DomainCombiner与提供的AccessControlContext关联。
      参数:
      acc - 与提供的DomainCombiner关联的AccessControlContext
      combiner - 与提供的AccessControlContext关联的DomainCombiner
      抛出:
      NullPointerException - 如果提供的contextnull
      SecurityException - 如果安装了安全管理器且调用者没有"createAccessControlContext" SecurityPermission
      自版本:
      1.3
  • Method Details

    • getDomainCombiner

      public DomainCombiner 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

      public void checkPermission(Permission perm) throws AccessControlException
      Deprecated, for removal: This API element is subject to removal in a future version.
      根据当前生效的安全策略和此对象中的上下文,确定指定权限所指示的访问请求是否应允许或拒绝。仅当上下文中的每个ProtectionDomain都暗示该权限时,才允许该请求。否则将拒绝该请求。

      如果访问请求被允许,此方法将静默返回;否则将抛出适当的AccessControlException

      参数:
      perm - 请求的权限。
      抛出:
      AccessControlException - 如果根据当前安全策略和此对象封装的上下文,指定的权限不被允许。
      NullPointerException - 如果要检查的权限为null
    • equals

      public boolean equals(Object obj)
      Deprecated, for removal: This API element is subject to removal in a future version.
      检查两个AccessControlContext对象是否相等。检查obj是否为AccessControlContext,并且具有与此上下文相同的ProtectionDomain对象集。
      覆盖:
      equals 在类 Object
      参数:
      obj - 我们正在测试与此对象相等的对象。
      返回:
      如果objAccessControlContext,并且具有与此上下文相同的ProtectionDomain对象集,则返回true;否则返回false
      参见:
    • hashCode

      public int hashCode()
      Deprecated, for removal: This API element is subject to removal in a future version.
      返回此上下文的哈希码值。哈希码通过对上下文中所有保护域的哈希码进行异或运算得出。
      覆盖:
      hashCode 在类 Object
      返回:
      此上下文的哈希码值。
      参见: