public final class KerberosPrincipal extends Object implements Serializable, Principal
Modifier and Type | Field and Description |
---|---|
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 and Description |
---|
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.
|
Modifier and Type | Method and Description |
---|---|
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.
|
public static final int KRB_NT_PRINCIPAL
public static final int KRB_NT_SRV_HST
public static final int KRB_NT_SRV_INST
public static final int KRB_NT_SRV_XHST
public static final int KRB_NT_UID
public static final int KRB_NT_UNKNOWN
public KerberosPrincipal(String name)
KRB_NT_PRINCIPAL
.name
- the principal's namepublic KerberosPrincipal(String name, int type) throws NotImplementedException
name
- the principal's nametype
- the principal's typeNotImplementedException
public int getNameType()
public int hashCode()
Object
There are some requirements on this method which
subclasses must follow:
a.equals(b)
is true, then
a.hashCode() == b.hashCode()
must be as well.
However, the reverse is not necessarily true, and two
objects may have the same hashcode without being equal.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)
hashCode
in interface Principal
hashCode
in class Object
Object.equals(Object)
,
System.identityHashCode(Object)
public boolean equals(Object other)
Object
There are some fairly strict requirements on this
method which subclasses must follow:
a.equals(b)
and
b.equals(c)
, then a.equals(c)
must be true as well.a.equals(b)
and
b.equals(a)
must have the same value.a.equals(a)
must
always be true.a.equals(null)
must be false.a.equals(b)
must imply
a.hashCode() == b.hashCode()
.
The reverse is not true; two objects that are not
equal may have the same hashcode, but that has
the potential to harm hashing performance.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
.
equals
in interface Principal
equals
in class Object
other
- the Object to compare toObject.hashCode()
public String toString()
Object
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())
.
toString
in interface Principal
toString
in class Object
Object.getClass()
,
Object.hashCode()
,
Class.getName()
,
Integer.toHexString(int)