模块  java.base
软件包  javax.security.auth

Class PrivateCredentialPermission

  • 实现的所有接口
    SerializableGuard

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

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

      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”,名称为“duke”,“cdPrincipal”,名称为“dukette”。
    从以下版本开始:
    1.4
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • PrivateCredentialPermission

        public PrivateCredentialPermission​(String name,
                                           String actions)
        创建一个新的PrivateCredentialPermission具有指定name name指定Credential类和Principal Set。
        参数
        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

        如果出现以下情况,则此方

        • 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表示指定的 Permission ,则返回true,否则 Permission false。
      • equals

        public boolean equals​(Object obj)
        检查两个PrivateCredentialPermission对象是否相等。 检查obj是否为PrivateCredentialPermission ,并且具有与此对象相同的凭证类,以及与此对象相同的Principals。 各个权限的目标名称中的委托人的顺序无关紧要。
        Specified by:
        equalsPermission
        参数
        obj - 我们正在测试与此对象相等的对象。
        结果
        如果obj是 PrivateCredentialPermission ,则为 PrivateCredentialPermission ,与此对象具有相同的凭证类,并且具有与此对象相同的Principal。
        另请参见:
        Object.hashCode()HashMap
      • getActions

        public String getActions()
        返回操作的“规范字符串表示形式”。 此方法始终返回String“read”。
        Specified by:
        getActionsPermission类中
        结果
        动作(总是返回“读”)。
      • newPermissionCollection

        public PermissionCollection newPermissionCollection()
        返回PrivateCredentialPermissions的同类集合在一个PermissionCollection 没有定义此类PermissionCollection ,因此此方法始终返回null
        重写:
        newPermissionCollectionPermission
        结果
        在所有情况下都为null。