- 所有已实现的接口:
-
Serializable
,Principal
- 自从:
- 1.4
- 参见:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic 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
ConstructorsConstructorDescriptionKerberosPrincipal
(String name) 从提供的字符串输入构造一个KerberosPrincipal
。KerberosPrincipal
(String name, int nameType) 从提供的字符串和名称类型输入构造一个KerberosPrincipal
。 -
Method Summary
-
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
从提供的字符串输入构造一个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
从提供的字符串和名称类型输入构造一个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
返回此Kerberos主体的领域组件。- 返回:
- 此Kerberos主体的领域组件。
-
hashCode
public int hashCode()返回此KerberosPrincipal
的哈希码。哈希码定义为以下计算结果:hashCode = getName().hashCode();
-
equals
与此主体比较指定的对象是否相等。如果给定的对象也是一个KerberosPrincipal
并且两个KerberosPrincipal
实例是等价的,则返回true。更正式地说,如果getName()
返回的值相等,则两个KerberosPrincipal
实例相等。 -
getName
返回的字符串对应于RFC 1964第2.1节中指定的Kerberos主体名称的单字符串表示形式。 -
getNameType
public int getNameType()返回KerberosPrincipal
的名称类型。有效的名称类型在RFC4120第6.2节中指定。- 返回:
- 名称类型。
-
toString
返回此KerberosPrincipal
的信息性文本表示。
-