Module java.base

Class PrivateCredentialPermission

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

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

Permission的目标名称指定了一个凭据类名和一组Principals。此权限的操作的唯一有效值是"read"。目标名称必须遵守以下语法:

      CredentialClass {PrincipalClass "PrincipalName"}*
 
例如,以下权限授予对由具有名称"duke"的com.sun.Principal拥有的com.sun.PrivateCredential的访问权限。请注意,尽管此示例以及下面的所有示例在授予语句中(出于简单起见)不包含Codebase、SignedBy或Principal信息,但实际的策略配置应在适当时指定该信息。
    grant {
      permission javax.security.auth.PrivateCredentialPermission
              "com.sun.PrivateCredential com.sun.Principal \"duke\"",
              "read";
    };
 
如果CredentialClass为"*",则授予对指定Subject拥有的所有私有凭据的访问权限。如果"PrincipalName"为"*",则授予对由具有指定Principal(实际PrincipalName无关紧要)的任何Subject拥有的指定凭据的访问权限。例如,以下示例授予对由具有a.b.Principal的任何Subject拥有的a.b.Credential的访问权限。
    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";
    };
 
上述示例授予对私有凭据"a.b.Credential"的访问权限,该凭据属于至少有两个关联Principals的Subject:"a.b.Principal"名称为"duke",以及"c.d.Principal"名称为"dukette"。
自从:
1.4
参见:
  • Constructor Details

    • PrivateCredentialPermission

      public PrivateCredentialPermission(String name, String actions)
      创建一个具有指定name的新PrivateCredentialPermissionname指定了凭据类和Principal集。
      参数:
      name - 指定凭据类和Principal集的名称。
      actions - 指定凭据可读取的操作。
      抛出:
      IllegalArgumentException - 如果name不符合正确的语法或actions不是"read"。
  • Method Details

    • getCredentialClass

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

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

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

      如果此方法返回true,则:

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

      public boolean equals(Object obj)
      检查两个PrivateCredentialPermission对象是否相等。检查obj是否为PrivateCredentialPermission,并且具有与此对象相同的凭据类,以及与此对象相同的Principals。在各自Permission的目标名称中Principals的顺序不相关。
      指定者:
      equals 在类中 Permission
      参数:
      obj - 我们正在测试与此对象相等的对象。
      返回:
      如果obj是PrivateCredentialPermission,具有与此对象相同的凭据类和与此对象相同的Principals,则返回true。
      参见:
    • 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。