- java.lang.Object
-
- javax.security.auth.kerberos.KerberosPrincipal
-
- All Implemented Interfaces:
-
Serializable
,Principal
public final class KerberosPrincipal extends Object implements Principal, Serializable
这个类封装了一个Kerberos主体。- 从以下版本开始:
- 1.4
- 另请参见:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
KRB_NT_PRINCIPAL
用户主体名称类型。static int
KRB_NT_SRV_HST
服务主机名称为实例(telnet,rcommands)的名称类型。static int
KRB_NT_SRV_INST
服务和其他唯一实例(krbtgt)的名称类型。static int
KRB_NT_SRV_XHST
服务与主机作为剩余组件名称类型。static int
KRB_NT_UID
唯一的ID名称类型。static int
KRB_NT_UNKNOWN
未知名称类型。
-
构造方法摘要
构造方法 Constructor 描述 KerberosPrincipal(String name)
从提供的字符串输入构造一个KerberosPrincipal
。KerberosPrincipal(String name, int nameType)
从提供的字符串和名称类型输入构造一个KerberosPrincipal
。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 boolean
equals(Object other)
将指定的对象与此主体进行比较以获得相等性。String
getName()
int
getNameType()
返回KerberosPrincipal
的名称类型。String
getRealm()
返回此Kerberos主体的领域组件。int
hashCode()
返回此KerberosPrincipal
的哈希码。String
toString()
返回此KerberosPrincipal
的内容丰富的文字表示。
-
-
-
字段详细信息
-
KRB_NT_UNKNOWN
public static final int KRB_NT_UNKNOWN
未知名称类型。- 另请参见:
- Constant Field Values
-
KRB_NT_PRINCIPAL
public static final int KRB_NT_PRINCIPAL
用户主体名称类型。- 另请参见:
- Constant Field Values
-
KRB_NT_SRV_INST
public static final int KRB_NT_SRV_INST
服务和其他唯一实例(krbtgt)的名称类型。- 另请参见:
- Constant Field Values
-
KRB_NT_SRV_HST
public static final int KRB_NT_SRV_HST
服务主机名称为实例(telnet,rcommands)的名称类型。- 另请参见:
- Constant Field Values
-
KRB_NT_SRV_XHST
public static final int KRB_NT_SRV_XHST
服务与主机作为剩余组件名称类型。- 另请参见:
- Constant Field Values
-
KRB_NT_UID
public static final int KRB_NT_UID
唯一的ID名称类型。- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
KerberosPrincipal
public KerberosPrincipal(String name)
从提供的字符串输入构造一个KerberosPrincipal
。 此主体的名称类型默认为KRB_NT_PRINCIPAL
该字符串假定包含2.1.1中规定的格式的名称。 (Kerberos主体名称表格)为RFC 1964 (例如, duke@FOO.COM ,其中公爵代表校长, FOO.COM代表一个领域)。如果输入名称不包含域,则使用默认域。 可以在Kerberos配置文件中或通过java.security.krb5.realm系统属性指定默认领域。 有关详细信息,请参阅Kerberos Requirements 。 另外,如果安装了一个安全管理员, 那么必须授予一个
ServicePermission
,这个权限的服务主体最低限度在KerberosPrincipal
的范围内。 例如,如果结果new KerberosPrincipal("user")
是user@EXAMPLE.COM
,则ServicePermission
与服务主体host/www.example.com@EXAMPLE.COM
(和任何动作)必须被授予。- 参数
-
name
- 主要名称 - 异常
-
IllegalArgumentException
- 如果名称格式不正确,如果名称为空,或者名称不包含要使用的领域,并且未在Kerberos配置文件中或通过java.security.krb5.realm系统属性指定默认域。 -
SecurityException
- 如果安装了一个安全管理器,并且name
不包含要使用的领域,并且不允许如上所述的适当的ServicePermission
。
-
KerberosPrincipal
public KerberosPrincipal(String name, int nameType)
从提供的字符串和名称类型输入构造一个KerberosPrincipal
。 该字符串假定包含一个名称,其格式在第2.1节(强制性名称表格)中指定为RFC 1964 。 有效的名称类型在第6.2节(主体名称)中指定为RFC 4120 。 输入名称必须与提供的名称类型一致。 (例如, duke@FOO.COM ,是名称类型的有效输入字符串,KRB_NT_PRINCIPAL,其中, duke表示一个主体, FOO.COM表示一个领域)。如果输入名称不包含域,则使用默认域。 可以在Kerberos配置文件中或通过java.security.krb5.realm系统属性指定默认领域。 有关详细信息,请参阅Kerberos Requirements 。 另外,如果安装了一个安全管理员, 那么必须授予一个
ServicePermission
,这个权限的服务主体最低限度在KerberosPrincipal
的范围内。 例如,如果new KerberosPrincipal("user")
的结果为user@EXAMPLE.COM
,则必须授予一个ServicePermission
(服务主体host/www.example.com@EXAMPLE.COM
(和任何操作))。- 参数
-
name
- 主要名称 -
nameType
- 主体的名称类型 - 异常
-
IllegalArgumentException
- 如果名称格式不正确,如果name为空,如果nameType不受支持,或者name不包含要使用的领域,并且在Kerberos配置文件或通过java.security中未指定默认域。 krb5.realm系统属性。 -
SecurityException
- 如果安装了安全管理器,并且name
不包含要使用的领域,并且不允许如上所述的适当的ServicePermission
。
-
-
方法详细信息
-
getRealm
public String getRealm()
返回此Kerberos主体的领域组件。- 结果
- 该Kerberos主体的领域组件。
-
hashCode
public int hashCode()
返回这个KerberosPrincipal
的哈希码。 哈希码被定义为以下计算的结果:hashCode = getName().hashCode();
- Specified by:
-
hashCode
在接口Principal
- 重写:
-
hashCode
在Object
- 结果
-
这个
KerberosPrincipal
的哈希码。 - 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
equals
public boolean equals(Object other)
将指定的对象与此主体进行比较以获得相等性。 如果给定的对象也是一个KerberosPrincipal
,并且两个KerberosPrincipal
实例是等价的,则返回true。 如果getName()
返回的值相等,KerberosPrincipal
正式地两个KerberosPrincipal
实例相等。
-
getNameType
public int getNameType()
返回KerberosPrincipal
的名称类型。 有效的名称类型在第RFC4120节中指定。- 结果
- 名称类型。
-
-