模块 java.base

类 AccessControlContext

java.lang.Object
java.security.AccessControlContext

@Deprecated (since ="17", forRemoval =true) public final class AccessControlContext extends Object
已弃用,将被删除:此 API 元素可能会在未来版本中删除。
此类仅与 安全管理器 结合使用,后者已弃用并会在未来版本中删除。因此,此类也已弃用并可能被删除。安全管理器或此类没有替代品。
AccessControlContext 用于根据它封装的上下文做出系统资源访问决策。

更具体地说,它封装了一个上下文并具有一个方法 checkPermission ,该方法等同于 AccessController 类中的 checkPermission 方法,但有一个区别: checkPermission 方法根据它封装的上下文而不是当前的上下文做出访问决策执行线程。

因此,AccessControlContext 的目的是针对那些应该在给定上下文中进行的安全检查实际上需要从不同的上下文(例如,来自工作线程内)。

通过调用 AccessController.getContext 方法创建 AccessControlContextgetContext 方法获取当前调用上下文的“快照”,并将其放置在它返回的 AccessControlContext 对象中。示例调用如下:

  AccessControlContext acc = AccessController.getContext()
 

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

  acc.checkPermission(permission)
 
自从:
1.2
参见:
  • 构造方法总结

    构造方法
    构造方法
    描述
    已弃用,将被删除:此 API 元素可能会在未来版本中删除。
    使用给定的 AccessControlContextDomainCombiner 创建一个新的 AccessControlContext
    已弃用,将被删除:此 API 元素可能会在未来版本中删除。
    使用给定的 ProtectionDomain 对象数组创建一个 AccessControlContext
  • 方法总结

    修饰符和类型
    方法
    描述
    void
    已弃用,将被删除:此 API 元素可能会在未来版本中删除。
    根据当前有效的安全策略和此对象中的上下文,确定是否应允许或拒绝由指定权限指示的访问请求。
    boolean
    equals(Object obj)
    已弃用,将被删除:此 API 元素可能会在未来版本中删除。
    检查两个 AccessControlContext 对象是否相等。
    已弃用,将被删除:此 API 元素可能会在未来版本中删除。
    获取与此 AccessControlContext 关联的 DomainCombiner
    int
    已弃用,将被删除:此 API 元素可能会在未来版本中删除。
    返回此上下文的哈希码值。

    在类 java.lang.Object 中声明的方法

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • 构造方法详细信息

    • AccessControlContext

      public AccessControlContext(ProtectionDomain [] context)
      已弃用,将被删除:此 API 元素可能会在未来版本中删除。
      使用给定的 ProtectionDomain 对象数组创建一个 AccessControlContext。上下文不能是 null 。将从上下文中删除重复的域。
      参数:
      context - 与此上下文关联的 ProtectionDomain 对象。非重复域是从数组中复制的。对数组的后续更改不会影响此 AccessControlContext
      抛出:
      NullPointerException - 如果 contextnull
    • AccessControlContext

      public AccessControlContext(AccessControlContext  acc, DomainCombiner  combiner)
      已弃用,将被删除:此 API 元素可能会在未来版本中删除。
      使用给定的 AccessControlContextDomainCombiner 创建一个新的 AccessControlContext 。此构造函数将提供的 DomainCombiner 与提供的 AccessControlContext 相关联。
      参数:
      acc - 与提供的 DomainCombiner 关联的 AccessControlContext
      combiner - 与提供的 AccessControlContext 关联的 DomainCombiner
      抛出:
      NullPointerException - 如果提供的 contextnull
      SecurityException - 如果安装了安全管理器并且调用者没有“createAccessControlContext”SecurityPermission
      自从:
      1.3
  • 方法详情

    • getDomainCombiner

      public DomainCombiner  getDomainCombiner()
      已弃用,将被删除:此 API 元素可能会在未来版本中删除。
      获取与此 AccessControlContext 关联的 DomainCombiner
      返回:
      与此 AccessControlContext 关联的 DomainCombiner,如果没有,则为 null
      抛出:
      SecurityException - 如果安装了安全管理器并且调用者没有“getDomainCombiner”SecurityPermission
      自从:
      1.3
    • checkPermission

      public void checkPermission(Permission  perm) throws AccessControlException
      已弃用,将被删除:此 API 元素可能会在未来版本中删除。
      根据当前有效的安全策略和此对象中的上下文,确定是否应允许或拒绝由指定权限指示的访问请求。仅当上下文中的每个 ProtectionDomain 都暗示许可时,才允许请求。否则请求被拒绝。

      如果允许访问请求,此方法会安静地返回,否则会抛出合适的 AccessControlException

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

      public boolean equals(Object  obj)
      已弃用,将被删除:此 API 元素可能会在未来版本中删除。
      检查两个 AccessControlContext 对象是否相等。检查 obj 是一个 AccessControlContext 并且具有与此上下文相同的一组 ProtectionDomain 对象。
      重写:
      equals 在类 Object
      参数:
      obj - 我们正在测试与此对象是否相等的对象。
      返回:
      true 如果 obj 是一个 AccessControlContext ,并且具有与此上下文相同的一组 ProtectionDomain 对象,否则为 false
      参见:
    • hashCode

      public int hashCode()
      已弃用,将被删除:此 API 元素可能会在未来版本中删除。
      返回此上下文的哈希码值。哈希码是通过将上下文中所有保护域的哈希码一起进行异或计算得到的。
      重写:
      hashCode 在类 Object
      返回:
      此上下文的哈希码值。
      参见: