Module  java.base
软件包  javax.security.auth

Class PrivateCredentialPermission

  • All Implemented Interfaces:
    SerializableGuard


    public final class PrivateCredentialPermission
    extends Permission
    此类用于保护对属于特定Subject私有凭据的访问。 Subject由一套校长代表。

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

      CredentialClass {PrincipalClass "PrincipalName"}* 
    例如,以下权限授予对主体拥有的com.sun.PrivateCredential的访问权限,该对象具有名称为“duke”的com.sun.Principal。 请注意,尽管此示例以及以下所有示例在grant语句中不包含Codebase,SignedBy或Principal信息(出于简单的原因),但实际的策略配置应在适当时指定该信息。
      grant {
          permission javax.security.auth.PrivateCredentialPermission
                  "com.sun.PrivateCredential com.sun.Principal \"duke\"",
                  "read";
        }; 
    如果CredentialClass为“*”,则授予对属于指定的Subject所有私有凭据的访问权限。 如果“PrincipalName”为“*”,则授予对具有指定的Principal (实际PrincipalName无关紧要)的任何Subject拥有的指定凭据的访问权限。 例如,以下授权访问由具有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";
        }; 
    上述授权访问私有证书,“abCredential”,属于Subject与至少两个相关联的校长:“abPrincipal”的名称,“公爵”和“cdPrincipal”,名称为“dukette”。
    从以下版本开始:
    1.4
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • PrivateCredentialPermission

        public PrivateCredentialPermission​(String name,
                                           String actions)
        创建一个新的PrivateCredentialPermission与指定的name name指定了一个Credential类和一个Principal集。
        参数
        name - 指定Credential类的名称和 Principal Set。
        actions - 指定可以读取凭证的操作。
        异常
        IllegalArgumentException - 如果 name不符合正确的语法,或者如果 actions不是“读取”。
    • 方法详细信息

      • 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名称。
        结果
        Principal类和与此相关的名称 PrivateCredentialPermission
      • implies

        public boolean implies​(Permission p)
        检查PrivateCredentialPermission意味着指定的Permission

        如果这个方法返回true:

        • pp的一个实例
        • 此对象的目标名称暗示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"]. 
        Specified by:
        impliesPermission
        参数
        p - Permission反对。
        结果
        如果这个 PrivateCredentialPermission意味着指定的 PermissionPermission true,否则为false。
      • equals

        public boolean equals​(Object obj)
        检查两个PrivateCredentialPermission对象是否相等。 检查obj是一个PrivateCredentialPermission ,并具有与此对象相同的凭证类,以及与此对象相同的主体。 校长在各自的权限目标名称中的顺序是不相关的。
        Specified by:
        equalsPermission
        参数
        obj - 我们正在测试与该对象相等的对象。
        结果
        true如果obj是一个 PrivateCredentialPermission ,具有与该对象相同的凭据类,并且具有与该对象相同的主体。
        另请参见:
        Object.hashCode()HashMap
      • getActions

        public String getActions​()
        返回动作的“规范字符串表示”。 这个方法总是返回String,“read”。
        Specified by:
        getActionsPermission
        结果
        动作(总是返回“read”)。
      • newPermissionCollection

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