| java.lang.Object sun.security.jgss.GSSNameImpl
GSSNameImpl | public class GSSNameImpl implements GSSName(Code) | | This is the implementation class for GSSName. Conceptually the
GSSName is a container with mechanism specific name elements. Each
name element is a representation of how that particular mechanism
would canonicalize this principal.
Generally a GSSName is created by an application when it supplies
a sequence of bytes and a nametype that helps each mechanism
decide how to interpret those bytes.
It is not necessary to create name elements for each available
mechanism at the time the application creates the GSSName. This
implementation does this lazily, as and when name elements for
mechanisms are required to be handed out. (Generally, other GSS
classes like GSSContext and GSSCredential request specific
elements depending on the mechanisms that they are dealing with.)
Assume that getting a mechanism to parse the applciation specified
bytes is an expensive call.
When a GSSName is canonicalized wrt some mechanism, it is supposed
to discard all elements of other mechanisms and retain only the
element for this mechanism. In GSS terminology this is called a
Mechanism Name or MN. This implementation tries to retain the
application provided bytes and name type just in case the MN is
asked to produce an element for a mechanism that is different.
When a GSSName is to be exported, the name element for the desired
mechanism is converted to a byte representation and written
out. It might happen that a name element for that mechanism cannot
be obtained. This happens when the mechanism is just not supported
in this GSS-API or when the mechanism is supported but bytes
corresponding to the nametypes that it understands are not
available in this GSSName.
This class is safe for sharing. Each retrieval of a name element
from getElement() might potentially add a new element to the
hashmap of elements, but getElement() is synchronized.
author: Mayank Upadhyay version: 1.24, 05/05/07 since: 1.4 |
canonicalize | public GSSName canonicalize(Oid mech) throws GSSException(Code) | | |
equals | public boolean equals(GSSName other) throws GSSException(Code) | | This method may return false negatives. But if it says two
names are equals, then there is some mechanism that
authenticates them as the same principal.
|
export | public byte[] export() throws GSSException(Code) | | Returns a flat name representation for this object. The name
format is defined in RFC 2743:
Length Name Description
2 TOK_ID Token Identifier
For exported name objects, this
must be hex 04 01.
2 MECH_OID_LEN Length of the Mechanism OID
MECH_OID_LEN MECH_OID Mechanism OID, in DER
4 NAME_LEN Length of name
NAME_LEN NAME Exported name; format defined in
applicable mechanism draft.
Note that it is not required to canonicalize a name before
calling export(). i.e., the name need not be an MN. If it is
not an MN, an implementation defined algorithm can be used for
choosing the mechanism which should export this name.
the flat name representation for this object exception: GSSException - with major codes NAME_NOT_MN, BAD_NAME,BAD_NAME, FAILURE. |
getElement | public synchronized GSSNameSpi getElement(Oid mechOid) throws GSSException(Code) | | |
getStringNameType | public Oid getStringNameType() throws GSSException(Code) | | |
hashCode | public int hashCode()(Code) | | Returns a hashcode value for this GSSName.
a hashCode value |
isAnonymous | public boolean isAnonymous()(Code) | | |
isMN | public boolean isMN()(Code) | | |
|
|