public interface GSSName
This interface encapsulates a single GSS-API principal entity. Different name formats and their definitions are identified with universal Object Identifiers (Oids). The format of the names can be derived based on the unique oid of its namespace type.
GSSManager mgr = GSSManager.getInstance(); // create a host based service name GSSName name = mgr.createName("service@host", GSSName.NT_HOSTBASED_SERVICE); Oid krb5 = new Oid("1.2.840.113554.1.2.2"); GSSName mechName = name.canonicalize(krb5); // the above two steps are equivalent to the following GSSName mechName = mgr.createName("service@host", GSSName.NT_HOSTBASED_SERVICE, krb5); // perform name comparison if (name.equals(mechName)) print("Names are equal."); // obtain textual representation of name and its printable // name type print(mechName.toString() + mechName.getStringNameType().toString()); // export and re-import the name byte [] exportName = mechName.export(); // create a new name object from the exported buffer GSSName newName = mgr.createName(exportName, GSSName.NT_EXPORT_NAME);
Modifier and Type | Field and Description |
---|---|
static Oid |
NT_ANONYMOUS
Name type for representing an anonymous entity.
|
static Oid |
NT_EXPORT_NAME
Name type used to indicate an exported name produced by the export
method.
|
static Oid |
NT_HOSTBASED_SERVICE
Oid indicating a host-based service name form.
|
static Oid |
NT_MACHINE_UID_NAME
Name type to indicate a numeric user identifier corresponding to a
user on a local system.
|
static Oid |
NT_STRING_UID_NAME
Name type to indicate a string of digits representing the numeric
user identifier of a user on a local system.
|
static Oid |
NT_USER_NAME
Name type to indicate a named user on a local system.
|
Modifier and Type | Method and Description |
---|---|
GSSName |
canonicalize(Oid mech)
Creates a mechanism name (MN) from an arbitrary internal name.
|
boolean |
equals(GSSName another)
Compares two GSSName objects to determine whether they refer to the
same entity.
|
boolean |
equals(Object another)
A variation of the
equals(org.ietf.jgss.GSSName) method that
is provided to override the Object.equals(java.lang.Object)
method that the implementing class will inherit. |
byte[] |
export()
Returns a canonical contiguous byte representation of a mechanism
name (MN), suitable for direct, byte by byte comparison by
authorization functions.
|
Oid |
getStringNameType()
Returns the oid representing the type of name returned through the
toString() method. |
int |
hashCode()
Return the hashcode of this GSSName.
|
boolean |
isAnonymous()
Tests if this name object represents an anonymous entity.
|
boolean |
isMN()
Tests if this name object contains only one mechanism element and is
thus a mechanism name as defined by RFC 2743.
|
String |
toString()
Returns a textual representation of the GSSName object.
|
static final Oid NT_ANONYMOUS
Name type for representing an anonymous entity. It represents the
following value: { 1(iso), 3(org), 6(dod), 1(internet), 5(security),
6(nametypes), 3(gss-anonymous-name) }
.
static final Oid NT_EXPORT_NAME
Name type used to indicate an exported name produced by the export
method. It represents the following value: { 1(iso), 3(org), 6(dod),
1(internet), 5(security), 6(nametypes), 4(gss-api-exported-name)
}
.
static final Oid NT_HOSTBASED_SERVICE
Oid indicating a host-based service name form. It is used to represent services associated with host computers. This name form is constructed using two elements, "service" and "hostname", as follows:
service@hostname
Values for the "service" element are registered with the IANA. It
represents the following value: { 1(iso), 3(org), 6(dod),
1(internet), 5(security), 6(nametypes), 2(gss-host-based-services)
}
.
static final Oid NT_MACHINE_UID_NAME
Name type to indicate a numeric user identifier corresponding to a
user on a local system. (e.g. Uid). It represents the following
value: { iso(1) member-body(2) United States(840) mit(113554)
infosys(1) gssapi(2) generic(1) machine_uid_name(2) }
.
static final Oid NT_STRING_UID_NAME
Name type to indicate a string of digits representing the numeric
user identifier of a user on a local system. It represents the
following value: { iso(1) member-body(2) United States(840)
mit(113554) infosys(1) gssapi(2) generic(1) string_uid_name(3)
}
.
static final Oid NT_USER_NAME
Name type to indicate a named user on a local system. It represents
the following value: { iso(1) member-body(2) United States(840)
mit(113554) infosys(1) gssapi(2) generic(1) user_name(1) }
.
boolean equals(GSSName another) throws GSSException
GSSException
when the
names cannot be compared. If either of the names represents an
anonymous entity, the method will return false
.another
- GSSName object to compare with.GSSException
- If the names cannot be compared.boolean equals(Object another)
equals(org.ietf.jgss.GSSName)
method that
is provided to override the Object.equals(java.lang.Object)
method that the implementing class will inherit. The behavior is
exactly the same as that in the other equals method except that no
GSSException
is thrown; instead, false
will be
returned in the situation where an error occurs. (Note that the Java
language specification requires that two objects that are equal
according to the Object.equals(java.lang.Object)
method must
return the same integer when the hashCode()
method is called
on them.equals
in class Object
another
- GSSName object to compare with.Object.hashCode()
int hashCode()
equals(org.ietf.jgss.GSSName)
,
it is normally necessary to override hashCode() as well.hashCode
in class Object
equals(org.ietf.jgss.GSSName)
returns true.Object.equals(Object)
,
System.identityHashCode(Object)
GSSName canonicalize(Oid mech) throws GSSException
GSSManager.createName(java.lang.String,org.ietf.jgss.Oid,org.ietf.jgss.Oid)
or GSSManager.createName(byte[],org.ietf.jgss.Oid,org.ietf.jgss.Oid)
.mech
- The oid for the mechanism for which the canonical form
of the name is requested.GSSException
- If this operation fails.byte[] export() throws GSSException
GSSException
with the GSSException.NAME_NOT_MN
status code. If an implementation chooses not to throw an exception,
it should use some system specific default mechanism to canonicalize
the name and then export it. The format of the header of the output
buffer is specified in RFC 2743.GSSException
- If the name is not an MN and the implementation
throws an exception for this case.String toString()
getStringNameType()
method can be used.toString
in class Object
Object.getClass()
,
Object.hashCode()
,
Class.getName()
,
Integer.toHexString(int)
Oid getStringNameType() throws GSSException
toString()
method. Using this oid, the syntax of the printable
name can be determined.GSSException
- If this operation fails.boolean isAnonymous()
true
if this is an anonymous name.