Class X500Principal

java.lang.Object
javax.security.auth.x500.X500Principal
All Implemented Interfaces:
Serializable, Principal

public final class X500Principal
extends Object
implements Serializable, Principal
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.
See Also:
Serialized Form
  • Field Summary

    Fields
    Modifier and Type Field Description
    static String CANONICAL
    Defines a constant for the canonical string format of distinguished names.
    static String RFC1779
    Defines a constant for the RFC 1779 string format of distinguished names.
    static String RFC2253
    Defines a constant for the RFC 2253 string format of distinguished names.
  • Constructor Summary

    Constructors
    Constructor Description
    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.
    X500Principal​(String name, Map<String,​String> keywordMap)  
  • Method Summary

    Modifier and Type Method Description
    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.
    String getName​(String format, Map<String,​String> oidMap)  
    int hashCode()
    Returns an integer hash code for this object.
    String toString()
    Returns a string containing a concise, human-readable description of this object.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • CANONICAL

      public static final String CANONICAL
      Defines a constant for the canonical string format of distinguished names.
      See Also:
      Constant Field Values
    • RFC1779

      public static final String RFC1779
      Defines a constant for the RFC 1779 string format of distinguished names.
      See Also:
      Constant Field Values
    • RFC2253

      public static final String RFC2253
      Defines a constant for the RFC 2253 string format of distinguished names.
      See Also:
      Constant Field Values
  • Constructor Details

    • X500Principal

      public X500Principal​(byte[] name)
      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
    • X500Principal

      public X500Principal​(InputStream in)
      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
    • X500Principal

      public X500Principal​(String name)
      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
    • X500Principal

      public X500Principal​(String name, Map<String,​String> keywordMap)
  • Method Details

    • equals

      public boolean equals​(Object o)
      Description copied from class: Object
      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 reflexive, symmetric, and transitive. Also, no object reference other than null is equal to null.

      The default implementation returns true only if this == o. See Writing a correct equals method if you intend implementing your own equals method.

      The general contract for the equals and Object.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 neither of them.

      Specified by:
      equals in interface Principal
      Overrides:
      equals in class Object
      Parameters:
      o - the object to compare this instance with.
      Returns:
      true if the specified object is equal to this Object; false otherwise.
      See Also:
      Object.hashCode()
    • getEncoded

      public byte[] getEncoded()
      Returns an ASN.1 DER-encoded representation of the distinguished name contained in this X.500 principal.
      Returns:
      the ASN.1 DER-encoded representation
    • getName

      public String getName()
      Returns a human-readable string representation of the distinguished name contained in this X.500 principal.
      Specified by:
      getName in interface Principal
      Returns:
      the string representation
    • getName

      public String getName​(String format)
      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
    • getName

      public String getName​(String format, Map<String,​String> oidMap)
    • hashCode

      public int hashCode()
      Description copied from class: Object
      Returns an integer hash code for this object. By contract, any two objects for which Object.equals(java.lang.Object) returns true must return the same hash code value. This means that subclasses of Object usually override both methods or neither method.

      Note that hash values must not change over time unless information used in equals comparisons also changes.

      See Writing a correct hashCode method if you intend implementing your own hashCode method.

      Specified by:
      hashCode in interface Principal
      Overrides:
      hashCode in class Object
      Returns:
      this object's hash code.
      See Also:
      Object.equals(java.lang.Object)
    • toString

      public String toString()
      Description copied from class: Object
      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 is equivalent to the following expression:
         getClass().getName() + '@' + Integer.toHexString(hashCode())

      See Writing a useful toString method if you intend implementing your own toString method.

      Specified by:
      toString in interface Principal
      Overrides:
      toString in class Object
      Returns:
      a printable representation of this object.