javax.security.auth.kerberos
Class KerberosPrincipal

java.lang.Object
  extended by javax.security.auth.kerberos.KerberosPrincipal
All Implemented Interfaces:
Serializable, Principal

public final class KerberosPrincipal
extends Object
implements Serializable, Principal

This represents a Kerberos principal. See the Kerberos authentication RFC for more information: RFC 1510.

Since:
1.4
See Also:
Serialized Form

Field Summary
static int KRB_NT_PRINCIPAL
          Constant from the RFC: "Just the name of the principal as in DCE, or for users".
static int KRB_NT_SRV_HST
          Constant from the RFC: "Service and other unique instance (krbtgt)".
static int KRB_NT_SRV_INST
          Constant from the RFC: "Service with host name as instance (telnet, rcommands)".
static int KRB_NT_SRV_XHST
          Constant from the RFC: "Service with host as remaining components".
static int KRB_NT_UID
          Constant from the RFC: "Unique ID".
static int KRB_NT_UNKNOWN
          Constant from the RFC: "Name type not known".
 
Constructor Summary
KerberosPrincipal(String name)
          Create a new instance with the given name and a type of KRB_NT_PRINCIPAL.
KerberosPrincipal(String name, int type)
          Create a new instance with the given name and type.
 
Method Summary
 boolean equals(Object other)
          Determine whether this Object is semantically equal to another Object.
 String getName()
          Return the name of this principal.
 int getNameType()
          Return the type of this principal.
 String getRealm()
          Return the realm of this principal.
 int hashCode()
          Get a value that represents this Object, as uniquely as possible within the confines of an int.
 String toString()
          Convert this Object to a human-readable String.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

KRB_NT_PRINCIPAL

public static final int KRB_NT_PRINCIPAL
Constant from the RFC: "Just the name of the principal as in DCE, or for users".

See Also:
Constant Field Values

KRB_NT_SRV_HST

public static final int KRB_NT_SRV_HST
Constant from the RFC: "Service and other unique instance (krbtgt)".

See Also:
Constant Field Values

KRB_NT_SRV_INST

public static final int KRB_NT_SRV_INST
Constant from the RFC: "Service with host name as instance (telnet, rcommands)".

See Also:
Constant Field Values

KRB_NT_SRV_XHST

public static final int KRB_NT_SRV_XHST
Constant from the RFC: "Service with host as remaining components".

See Also:
Constant Field Values

KRB_NT_UID

public static final int KRB_NT_UID
Constant from the RFC: "Unique ID".

See Also:
Constant Field Values

KRB_NT_UNKNOWN

public static final int KRB_NT_UNKNOWN
Constant from the RFC: "Name type not known".

See Also:
Constant Field Values
Constructor Detail

KerberosPrincipal

public KerberosPrincipal(String name)
Create a new instance with the given name and a type of KRB_NT_PRINCIPAL.

Parameters:
name - the principal's name

KerberosPrincipal

public KerberosPrincipal(String name,
                         int type)
                  throws NotImplementedException
Create a new instance with the given name and type. The name is parsed according to the rules in the RFC. If there is no realm, then the local realm is used instead.

Parameters:
name - the principal's name
type - the principal's type
Throws:
NotImplementedException
Method Detail

getName

public String getName()
Return the name of this principal.

Specified by:
getName in interface Principal
Returns:
the name of this Principal

getRealm

public String getRealm()
Return the realm of this principal.


getNameType

public int getNameType()
Return the type of this principal.


hashCode

public int hashCode()
Description copied from class: Object
Get a value that represents this Object, as uniquely as possible within the confines of an int.

There are some requirements on this method which subclasses must follow:

Notice that since hashCode is used in Hashtable and other hashing classes, a poor implementation will degrade the performance of hashing (so don't blindly implement it as returning a constant!). Also, if calculating the hash is time-consuming, a class may consider caching the results.

The default implementation returns System.identityHashCode(this)

Specified by:
hashCode in interface Principal
Overrides:
hashCode in class Object
Returns:
the hash code for this Object
See Also:
Object.equals(Object), System.identityHashCode(Object)

equals

public boolean equals(Object other)
Description copied from class: Object
Determine whether this Object is semantically equal to another Object.

There are some fairly strict requirements on this method which subclasses must follow:

This is typically overridden to throw a ClassCastException if the argument is not comparable to the class performing the comparison, but that is not a requirement. It is legal for a.equals(b) to be true even though a.getClass() != b.getClass(). Also, it is typical to never cause a NullPointerException.

In general, the Collections API (java.util) use the equals method rather than the == operator to compare objects. However, IdentityHashMap is an exception to this rule, for its own good reasons.

The default implementation returns this == o.

Specified by:
equals in interface Principal
Overrides:
equals in class Object
Parameters:
other - the Object to compare to
Returns:
whether this Object is semantically equal to another
See Also:
Object.hashCode()

toString

public String toString()
Description copied from class: Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() and such.

It is typical, but not required, to ensure that this method never completes abruptly with a RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).

Specified by:
toString in interface Principal
Overrides:
toString in class Object
Returns:
the String representing this Object, which may be null
See Also:
Object.getClass(), Object.hashCode(), Class.getName(), Integer.toHexString(int)