模块 java.base

类 PrivateCredentialPermission

java.lang.Object
java.security.Permission
javax.security.auth.PrivateCredentialPermission
所有已实现的接口:
Serializable , Guard

public final class PrivateCredentialPermission extends Permission
此类用于保护对属于特定 Subject 的私有凭证的访问。 Subject 由一组主体表示。

这个 Permission 的目标名称指定了一个 Credential 类名和一组 Principals。此权限操作的唯一有效值是“读取”。目标名称必须遵守以下语法:

   CredentialClass {PrincipalClass "PrincipalName"}*
 
例如,以下权限授予对 com.sun.PrivateCredential 的访问权,该 com.sun.PrivateCredential 由具有名称为“duke”的 com.sun.Principal 的主体拥有。请注意,尽管此示例以及下面的所有示例在授权声明中不包含 Codebase、SignedBy 或 Principal 信息(出于简单原因),但实际策略配置应在适当时指定该信息。
  grant {
   permission javax.security.auth.PrivateCredentialPermission
       "com.sun.PrivateCredential com.sun.Principal \"duke\"",
       "read";
  };
 
如果 CredentialClass 为“*”,则授予对属于指定 Subject 的所有私有凭证的访问权限。如果“PrincipalName”为“*”,则授予对任何具有指定 PrincipalSubject 所拥有的指定凭据的访问权限(实际的 PrincipalName 无关紧要)。例如,以下授予对任何具有 abPrincipal 的 Subject 所拥有的 abCredential 的访问权限。
  grant {
   permission javax.security.auth.PrivateCredentialPermission
       "a.b.Credential a.b.Principal "*"",
       "read";
  };
 
如果 PrincipalClass 和“PrincipalName”均为“*”,则授予对任何 Subject 拥有的指定凭证的访问权限。

此外,可以重复 PrincipalClass/PrincipalName 配对:

  grant {
   permission javax.security.auth.PrivateCredentialPermission
       "a.b.Credential a.b.Principal "duke" c.d.Principal "dukette"",
       "read";
  };
 
以上授予对属于 Subject 的私有凭证“abCredential”的访问权限,该 Subject 至少有两个关联的主体:名称为“duke”的“abPrincipal”和名称为“dukette”的“cdPrincipal”。
自从:
1.4
参见:
  • 构造方法详细信息

    • PrivateCredentialPermission

      public PrivateCredentialPermission(String  name, String  actions)
      使用指定的 name 创建一个新的 PrivateCredentialPermissionname 指定了 Credential 类和 Principal Set。
      参数:
      name - 指定凭证类和 Principal 集的名称。
      actions - 指定可以读取凭据的操作。
      抛出:
      IllegalArgumentException - 如果 name 不符合正确的语法或如果 actions 未被“读取”。
  • 方法详情

    • getCredentialClass

      public String  getCredentialClass()
      返回与此 PrivateCredentialPermission 关联的凭证的类名。
      返回:
      与此 PrivateCredentialPermission 关联的凭证的类名。
    • getPrincipals

      public String [][] getPrincipals()
      返回与此 PrivateCredentialPermission 关联的 Principal 类和名称。信息以二维数组 (array[x][y]) 的形式返回。 “x”值对应于 Principal 类和名称对的数量。当(y==0)时,对应Principalclass值,当(y==1)时,对应Principalname值。例如,array[0][0]对应数组中第一个Principal的类名。 array[0][1] 对应数组中第一个PrincipalPrincipal名称。
      返回:
      与此 PrivateCredentialPermission 关联的 Principal 类和名称。
    • implies

      public boolean implies(Permission  p)
      检查此 PrivateCredentialPermission 是否暗示指定的 Permission

      如果出现以下情况,此方法将返回 true:

      • p 是 PrivateCredentialPermission 的实例并且
      • p 的目标名称由此对象的目标名称隐含。例如:
         [* P1 "duke"] implies [a.b.Credential P1 "duke"].
         [C1 P1 "duke"] implies [C1 P1 "duke" P2 "dukette"].
         [C1 P2 "dukette"] implies [C1 P1 "duke" P2 "dukette"].
         
      指定者:
      implies 在类 Permission
      参数:
      p - 要检查的 Permission
      返回:
      如果此 PrivateCredentialPermission 暗示指定的 Permission 则为真,否则为假。
    • equals

      public boolean equals(Object  obj)
      检查两个 PrivateCredentialPermission 对象是否相等。检查 obj 是一个 PrivateCredentialPermission ,并且具有与该对象相同的凭证类,以及与该对象相同的 Principals。 Principals 在各自权限的目标名称中的顺序是不相关的。
      指定者:
      equals 在类 Permission
      参数:
      obj - 我们正在测试与此对象是否相等的对象。
      返回:
      如果 obj 是 PrivateCredentialPermission ,具有与此对象相同的凭证类,并且与此对象具有相同的主体,则为真。
      参见:
    • hashCode

      public int hashCode()
      返回此对象的哈希码值。
      指定者:
      hashCode 在类 Permission
      返回:
      此对象的哈希码值。
      参见:
    • getActions

      public String  getActions()
      返回操作的“规范字符串表示”。此方法始终返回字符串“read”。
      指定者:
      getActions 在类 Permission
      返回:
      动作(总是返回“read”)。
    • newPermissionCollection

      public PermissionCollection  newPermissionCollection()
      PermissionCollection 中返回 PrivateCredentialPermissions 的同类集合。没有这样的 PermissionCollection 被定义,所以这个方法总是返回 null
      重写:
      newPermissionCollection 在类 Permission
      返回:
      在所有情况下均为 null。