public final class

X500Principal

extends Object
implements Serializable Principal
java.lang.Object
   ↳ javax.security.auth.x500.X500Principal

Class Overview

Represents an X.500 principal, which holds the distinguished name of some network entity. An example of a distinguished name is "O=SomeOrg, OU=SomeOrgUnit, C=US". The class can be instantiated from a byte representation of an object identifier (OID), an ASN.1 DER-encoded version, or a simple string holding the distinguished name. The representations must follow either RFC 2253, RFC 1779, or RFC2459.

Summary

Constants
String CANONICAL Defines a constant for the canonical string format of distinguished names.
String RFC1779 Defines a constant for the RFC 1779 string format of distinguished names.
String RFC2253 Defines a constant for the RFC 2253 string format of distinguished names.
Public Constructors
X500Principal(byte[] name)
Creates a new X500Principal from a given ASN.1 DER encoding of a distinguished name.
X500Principal(InputStream in)
Creates a new X500Principal from a given ASN.1 DER encoding of a distinguished name.
X500Principal(String name)
Creates a new X500Principal from a string representation of a distinguished name.
Public Methods
boolean equals(Object o)
Compares this instance with the specified object and indicates if they are equal.
byte[] getEncoded()
Returns an ASN.1 DER-encoded representation of the distinguished name contained in this X.500 principal.
String getName()
Returns a human-readable string representation of the distinguished name contained in this X.500 principal.
String getName(String format)
Returns a string representation of the distinguished name contained in this X.500 principal.
int hashCode()
Returns an integer hash code for this object.
String toString()
Returns a string containing a concise, human-readable description of this object.
[Expand]
Inherited Methods
From class java.lang.Object
From interface java.security.Principal

Constants

public static final String CANONICAL

Since: API Level 1

Defines a constant for the canonical string format of distinguished names.

Constant Value: "CANONICAL"

public static final String RFC1779

Since: API Level 1

Defines a constant for the RFC 1779 string format of distinguished names.

Constant Value: "RFC1779"

public static final String RFC2253

Since: API Level 1

Defines a constant for the RFC 2253 string format of distinguished names.

Constant Value: "RFC2253"

Public Constructors

public X500Principal (byte[] name)

Since: API Level 1

Creates a new X500Principal from a given ASN.1 DER encoding of a distinguished name.

Parameters
name the ASN.1 DER-encoded distinguished name
Throws
IllegalArgumentException if the ASN.1 DER-encoded distinguished name is incorrect

public X500Principal (InputStream in)

Since: API Level 1

Creates a new X500Principal from a given ASN.1 DER encoding of a distinguished name.

Parameters
in an InputStream holding the ASN.1 DER-encoded distinguished name
Throws
IllegalArgumentException if the ASN.1 DER-encoded distinguished name is incorrect

public X500Principal (String name)

Since: API Level 1

Creates a new X500Principal from a string representation of a distinguished name.

Parameters
name the string representation of the distinguished name
Throws
IllegalArgumentException if the string representation of the distinguished name is incorrect

Public Methods

public boolean equals (Object o)

Since: API Level 1

Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must represent the same object as this instance using a class-specific comparison. The general contract is that this comparison should be both transitive and reflexive.

The implementation in Object returns true only if o is the exact same object as the receiver (using the == operator for comparison). Subclasses often implement equals(Object) so that it takes into account the two object's types and states.

The general contract for the equals(Object) and hashCode() methods is that if equals returns true for any two objects, then hashCode() must return the same value for these objects. This means that subclasses of Object usually override either both methods or none of them.

Parameters
o the object to compare this instance with.
Returns
  • true if the specified object is equal to this Object; false otherwise.

public byte[] getEncoded ()

Since: API Level 1

Returns an ASN.1 DER-encoded representation of the distinguished name contained in this X.500 principal.

Returns
  • the ASN.1 DER-encoded representation

public String getName ()

Since: API Level 1

Returns a human-readable string representation of the distinguished name contained in this X.500 principal.

Returns
  • the string representation

public String getName (String format)

Since: API Level 1

Returns a string representation of the distinguished name contained in this X.500 principal. The format of the representation can be chosen. Valid arguments are RFC1779, RFC2253, and CANONICAL. The representations are specified in RFC 1779 and RFC 2253, respectively. The canonical form is based on RFC 2253, but adds some canonicalizing operations like removing leading and trailing whitespace, lower-casing the whole name, and bringing it into a normalized Unicode representation.

Parameters
format the name of the format to use for the representation
Returns
  • the string representation
Throws
IllegalArgumentException if the format argument is not one of the three mentioned above

public int hashCode ()

Since: API Level 1

Returns an integer hash code for this object. By contract, any two objects for which equals(Object) returns true must return the same hash code value. This means that subclasses of Object usually override both methods or neither method.

Returns
  • this object's hash code.

public String toString ()

Since: API Level 1

Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation simply concatenates the class name, the '@' sign and a hexadecimal representation of the object's hashCode(), that is, it is equivalent to the following expression:

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

Returns
  • a printable representation of this object.