public final class

KerberosPrincipal

extends Object
implements Serializable Principal
java.lang.Object
   ↳ javax.security.auth.kerberos.KerberosPrincipal

Class Overview

This class encapsulates a Kerberos principal.

Summary

Constants
int KRB_NT_PRINCIPAL user principal name type.
int KRB_NT_SRV_HST service with host name as instance (telnet, rcommands) name type.
int KRB_NT_SRV_INST service and other unique instance (krbtgt) name type.
int KRB_NT_SRV_XHST service with host as remaining components name type.
int KRB_NT_UID unique ID name type.
int KRB_NT_UNKNOWN unknown name type.
Public Constructors
KerberosPrincipal(String name)
Constructs a KerberosPrincipal from the provided string input.
KerberosPrincipal(String name, int nameType)
Constructs a KerberosPrincipal from the provided string and name type input.
Public Methods
boolean equals(Object other)
Compares the specified Object with this Principal for equality.
String getName()
The returned string corresponds to the single-string representation of a Kerberos Principal name as specified in Section 2.1 of RFC 1964.
int getNameType()
Returns the name type of the KerberosPrincipal.
String getRealm()
Returns the realm component of this Kerberos principal.
int hashCode()
Returns a hashcode for this principal.
String toString()
Returns a string representation of the object.
[Expand]
Inherited Methods
From class java.lang.Object
From interface java.security.Principal

Constants

public static final int KRB_NT_PRINCIPAL

user principal name type.

Constant Value: 1 (0x00000001)

public static final int KRB_NT_SRV_HST

service with host name as instance (telnet, rcommands) name type.

Constant Value: 3 (0x00000003)

public static final int KRB_NT_SRV_INST

service and other unique instance (krbtgt) name type.

Constant Value: 2 (0x00000002)

public static final int KRB_NT_SRV_XHST

service with host as remaining components name type.

Constant Value: 4 (0x00000004)

public static final int KRB_NT_UID

unique ID name type.

Constant Value: 5 (0x00000005)

public static final int KRB_NT_UNKNOWN

unknown name type.

Constant Value: 0 (0x00000000)

Public Constructors

public KerberosPrincipal (String name)

Constructs a KerberosPrincipal from the provided string input. The name type for this principal defaults to KRB_NT_PRINCIPAL This string is assumed to contain a name in the format that is specified in Section 2.1.1. (Kerberos Principal Name Form) of RFC 1964 (for example, duke@FOO.COM, where duke represents a principal, and FOO.COM represents a realm).

If the input name does not contain a realm, the default realm is used. The default realm can be specified either in a Kerberos configuration file or via the java.security.krb5.realm system property. For more information, Kerberos Requirements

Parameters
name the principal name
Throws
IllegalArgumentException if name is improperly formatted, if name is null, or if name does not contain the realm to use and the default realm is not specified in either a Kerberos configuration file or via the java.security.krb5.realm system property.

public KerberosPrincipal (String name, int nameType)

Constructs a KerberosPrincipal from the provided string and name type input. The string is assumed to contain a name in the format that is specified in Section 2.1 (Mandatory Name Forms) of RFC 1964. Valid name types are specified in Section 6.2 (Principal Names) of RFC 4120. The input name must be consistent with the provided name type. (for example, duke@FOO.COM, is a valid input string for the name type, KRB_NT_PRINCIPAL where duke represents a principal, and FOO.COM represents a realm).

If the input name does not contain a realm, the default realm is used. The default realm can be specified either in a Kerberos configuration file or via the java.security.krb5.realm system property. For more information, see Kerberos Requirements.

Parameters
name the principal name
nameType the name type of the principal
Throws
IllegalArgumentException if name is improperly formatted, if name is null, if the nameType is not supported, or if name does not contain the realm to use and the default realm is not specified in either a Kerberos configuration file or via the java.security.krb5.realm system property.

Public Methods

public boolean equals (Object other)

Compares the specified Object with this Principal for equality. Returns true if the given object is also a KerberosPrincipal and the two KerberosPrincipal instances are equivalent. More formally two KerberosPrincipal instances are equal if the values returned by getName() are equal and the values returned by getNameType() are equal.

Parameters
other the Object to compare to
Returns
  • true if the Object passed in represents the same principal as this one, false otherwise.

public String getName ()

The returned string corresponds to the single-string representation of a Kerberos Principal name as specified in Section 2.1 of RFC 1964.

Returns
  • the principal name.

public int getNameType ()

Returns the name type of the KerberosPrincipal. Valid name types are specified in Section 6.2 of RFC4120.

Returns
  • the name type.

public String getRealm ()

Returns the realm component of this Kerberos principal.

Returns
  • the realm component of this Kerberos principal.

public int hashCode ()

Returns a hashcode for this principal. The hash code is defined to be the result of the following calculation:


  hashCode = getName().hashCode();
 

Returns
  • a hashCode() for the KerberosPrincipal

public String toString ()

Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

Returns
  • a string representation of the object.