模块 java.base

类 ProtectionDomain

java.lang.Object
java.security.ProtectionDomain

public class ProtectionDomain extends Object
ProtectionDomain 类封装了域的特征,其中包含一组类,这些类的实例在代表一组给定的 Principals 执行时被授予一组权限。

一组静态权限可以在构造时绑定到ProtectionDomain;无论现行策略如何,都会向域授予此类权限。但是,为了支持动态安全策略,ProtectionDomain 也可以构造成在检查权限时根据当前策略动态映射到一组权限。

自从:
1.2
  • 构造方法详细信息

    • ProtectionDomain

      public ProtectionDomain(CodeSource  codesource, PermissionCollection  permissions)
      使用给定的 CodeSource 和权限创建一个新的 ProtectionDomain。如果 permissions 不是 null ,那么 setReadOnly() 将在传入的权限上调用。

      授予该域的权限是静态的,即调用 staticPermissionsOnly() 方法返回 true 。它们仅包含传递给此构造函数的那些,不会咨询当前策略。

      参数:
      codesource - 与此域关联的代码源
      permissions - 授予该域的权限
    • ProtectionDomain

      public ProtectionDomain(CodeSource  codesource, PermissionCollection  permissions, ClassLoader  classloader, Principal [] principals)
      创建一个由给定的 CodeSource、权限、ClassLoader 和主体数组限定的新 ProtectionDomain。如果 permissions 不是 null ,那么 setReadOnly() 将在传入的权限上调用。

      授予该域的权限是动态的,即调用 staticPermissionsOnly() 方法返回 false 。它们包括传递给此构造函数的静态权限,以及检查权限时当前策略授予此域的任何权限。

      此构造函数通常由 ClassLoaders DomainCombiners 使用,它们委托给 Policy 对象以主动关联授予该域的权限。此构造函数为策略提供者提供了扩充提供的 PermissionCollection 以反映策略更改的机会。

      参数:
      codesource - 与此域关联的 CodeSource
      permissions - 授予该域的权限
      classloader - 与此域关联的 ClassLoader
      principals - 与此域关联的 Principal 对象的数组。复制数组的内容以防止后续修改。
      自从:
      1.4
      参见:
  • 方法详情

    • getCodeSource

      public final CodeSource  getCodeSource()
      返回此域的 CodeSource
      返回:
      该域的 CodeSource 可能是 null
      自从:
      1.2
    • getClassLoader

      public final ClassLoader  getClassLoader()
      返回此域的 ClassLoader
      返回:
      该域的 ClassLoader 可能是 null
      自从:
      1.4
    • getPrincipals

      public final Principal [] getPrincipals()
      返回此域的主体数组。
      返回:
      该域的主体的非空数组。每次调用此方法时返回一个新数组。
      自从:
      1.4
    • getPermissions

      public final PermissionCollection  getPermissions()
      返回授予此域的静态权限。
      返回:
      该域的静态权限集可能是 null
      参见:
    • staticPermissionsOnly

      public final boolean staticPermissionsOnly()
      如果此域仅包含静态权限并且在权限检查时不检查当前的 Policy,则返回 true
      返回:
      true 如果此域仅包含静态权限。
      自从:
      9
    • implies

      public boolean implies(Permission  perm)
      检查并查看此 ProtectionDomain 是否暗示了 Permission 对象中表达的权限。

      所评估的权限集取决于 ProtectionDomain 是使用静态权限集构造的还是绑定到动态映射的权限集。

      如果 staticPermissionsOnly() 方法返回 true ,则只会根据构造时提供的 PermissionCollection 检查权限。

      否则,将根据构建时提供的 PermissionCollection 和当前策略绑定的组合检查权限。

      参数:
      perm - 要检查的 {code Permission} 对象。
      返回:
      true 如果 perm 被这个 ProtectionDomain 暗示。
    • toString

      public String  toString()
      ProtectionDomain 转换为 String
      重写:
      toString 在类 Object
      返回:
      对象的字符串表示形式。