Class KerberosPrincipal

java.lang.Object
javax.security.auth.kerberos.KerberosPrincipal
所有已实现的接口:
Serializable, Principal

public final class KerberosPrincipal extends Object implements Principal, Serializable
此类封装了一个Kerberos主体。
自从:
1.4
参见:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    企业名称(别名)
    static final int
    用户主体名称类型。
    static final int
    以主机名作为实例的服务(telnet,rcommands)名称类型。
    static final int
    服务和其他唯一实例(krbtgt)名称类型。
    static final int
    以主机作为剩余组件的服务名称类型。
    static final int
    唯一ID名称类型。
    static final int
    未知名称类型。
  • Constructor Summary

    Constructors
    Constructor
    Description
    从提供的字符串输入构造一个KerberosPrincipal
    KerberosPrincipal(String name, int nameType)
    从提供的字符串和名称类型输入构造一个KerberosPrincipal
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    equals(Object other)
    将指定的对象与此主体进行比较以确定是否相等。
    返回的字符串对应于Kerberos主体名称的单字符串表示,如RFC 1964第2.1节中所述。
    int
    返回KerberosPrincipal的名称类型。
    返回此Kerberos主体的领域组件。
    int
    返回此KerberosPrincipal的哈希码。
    返回此KerberosPrincipal的信息性文本表示。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods declared in interface java.security.Principal

    implies
  • Field Details

    • KRB_NT_UNKNOWN

      public static final int KRB_NT_UNKNOWN
      未知名称类型。
      参见:
    • KRB_NT_PRINCIPAL

      public static final int KRB_NT_PRINCIPAL
      用户主体名称类型。
      参见:
    • KRB_NT_SRV_INST

      public static final int KRB_NT_SRV_INST
      服务和其他唯一实例(krbtgt)名称类型。
      参见:
    • KRB_NT_SRV_HST

      public static final int KRB_NT_SRV_HST
      以主机名作为实例的服务(telnet,rcommands)名称类型。
      参见:
    • KRB_NT_SRV_XHST

      public static final int KRB_NT_SRV_XHST
      以主机作为剩余组件的服务名称类型。
      参见:
    • KRB_NT_UID

      public static final int KRB_NT_UID
      唯一ID名称类型。
      参见:
    • KRB_NT_ENTERPRISE

      public static final int KRB_NT_ENTERPRISE
      企业名称(别名)
      自从:
      13
      参见:
  • Constructor Details

    • KerberosPrincipal

      public KerberosPrincipal(String name)
      从提供的字符串输入构造一个KerberosPrincipal。此主体的名称类型默认为KRB_NT_PRINCIPAL。假定此字符串包含格式指定在RFC 1964第2.1.1节中的名称格式(例如,duke@FOO.COM,其中duke表示主体,FOO.COM表示领域)。

      如果输入名称不包含领域,则使用默认领域。默认领域可以在Kerberos配置文件中或通过java.security.krb5.realm系统属性指定。有关更多信息,请参阅Kerberos要求

      请注意,当此类或任何其他与Kerberos相关的类最初加载和初始化时,它可能会从Kerberos配置文件或通过java.security.krb5.realm系统属性读取和缓存默认领域(如果未指定默认领域,则值将为空),因此通过设置java.security.krb5.realm系统属性来设置或更改默认领域的任何后续调用可能会被忽略。

      此外,如果安装了安全管理器,则必须授予ServicePermission,并且权限的服务主体必须至少在KerberosPrincipal的领域内。例如,如果new KerberosPrincipal("user")的结果是user@EXAMPLE.COM,则必须授予具有服务主体host/www.example.com@EXAMPLE.COM(以及任何操作)的ServicePermission

      参数:
      name - 主体名称
      抛出:
      IllegalArgumentException - 如果名称格式不正确,如果名称为null,或者如果名称不包含要使用的领域且默认领域未在Kerberos配置文件中或通过java.security.krb5.realm系统属性中指定。
      SecurityException - 如果安装了安全管理器且name不包含要使用的领域,并且未授予如上所述的适当ServicePermission
    • KerberosPrincipal

      public KerberosPrincipal(String name, int nameType)
      从提供的字符串和名称类型输入构造一个KerberosPrincipal。假定字符串包含在RFC 1964第2.1节中指定的格式中的名称。有效的名称类型在RFC 4120第6.2节(主体名称)中指定。输入名称必须与提供的名称类型一致。(例如,duke@FOO.COM是KRB_NT_PRINCIPAL名称类型的有效输入字符串,其中duke表示主体,FOO.COM表示领域)。

      如果输入名称不包含领域,则使用默认领域。默认领域可以在Kerberos配置文件中或通过java.security.krb5.realm系统属性指定。有关更多信息,请参阅Kerberos要求

      请注意,当此类或任何其他与Kerberos相关的类最初加载和初始化时,它可能会从Kerberos配置文件或通过java.security.krb5.realm系统属性读取和缓存默认领域(如果未指定默认领域,则值将为空),因此通过设置java.security.krb5.realm系统属性来设置或更改默认领域的任何后续调用可能会被忽略。

      此外,如果安装了安全管理器,则必须授予ServicePermission,并且权限的服务主体必须至少在KerberosPrincipal的领域内。例如,如果new KerberosPrincipal("user")的结果是user@EXAMPLE.COM,则必须授予具有服务主体host/www.example.com@EXAMPLE.COM(以及任何操作)的ServicePermission

      参数:
      name - 主体名称
      nameType - 主体的名称类型
      抛出:
      IllegalArgumentException - 如果名称格式不正确,如果名称为null,如果不支持名称类型,或者如果名称不包含要使用的领域且默认领域未在Kerberos配置文件中或通过java.security.krb5.realm系统属性中指定。
      SecurityException - 如果安装了安全管理器且name不包含要使用的领域,并且未授予如上所述的适当ServicePermission
  • Method Details

    • getRealm

      public String getRealm()
      返回此Kerberos主体的领域组件。
      返回:
      此Kerberos主体的领域组件。
    • hashCode

      public int hashCode()
      返回此KerberosPrincipal的哈希码。哈希码定义为以下计算结果:
      
        hashCode = getName().hashCode();
       
      指定者:
      hashCode 在接口 Principal
      覆盖:
      hashCode 在类 Object
      返回:
      KerberosPrincipal的哈希码。
      参见:
    • equals

      public boolean equals(Object other)
      与此主体比较指定的对象是否相等。如果给定的对象也是一个KerberosPrincipal并且两个KerberosPrincipal实例是等价的,则返回true。更正式地说,如果getName()返回的值相等,则两个KerberosPrincipal实例相等。
      指定者:
      equals 在接口 Principal
      覆盖:
      equals 在类 Object
      参数:
      other - 要比较的对象
      返回:
      如果传入的对象代表与此对象相同的主体,则返回true,否则返回false。
      参见:
    • getName

      public String getName()
      返回的字符串对应于RFC 1964第2.1节中指定的Kerberos主体名称的单字符串表示形式。
      指定者:
      getName 在接口 Principal
      返回:
      主体名称。
    • getNameType

      public int getNameType()
      返回KerberosPrincipal的名称类型。有效的名称类型在RFC4120第6.2节中指定。
      返回:
      名称类型。
    • toString

      public String toString()
      返回此KerberosPrincipal的信息性文本表示。
      指定者:
      toString 在接口 Principal
      覆盖:
      toString 在类 Object
      返回:
      KerberosPrincipal的信息性文本表示。