netscape.ldap

Class LDAPUrl

Implemented Interfaces:
java.io.Serializable

public class LDAPUrl
extends java.lang.Object
implements java.io.Serializable

Represents an LDAP URL. The complete specification for LDAP URLs is in RFC 1959. In addition, the secure ldap (ldaps://) is also supported. LDAP URLs have the following format:
 "ldap[s]://" [ hostName [":" portNumber] ] "/"
                      distinguishedName
          ["?" attributeList ["?" scope
                      "?" filterString ] ]
 
where

If not specified, scope is base by default.

  • filterString is a human-readable representation of the search criteria. This value is used only for one-level or subtree searches.

    Note that if scope and filterString are not specified, an LDAP URL identifies exactly one entry in the directory.

    The same encoding rules for other URLs (e.g. HTTP) apply for LDAP URLs. Specifically, any "illegal" characters are escaped with %HH, where HH represent the two hex digits which correspond to the ASCII value of the character. This encoding is only legal (or necessary) on the DN and filter portions of the URL.

  • Version:
    1.0
    See Also:
    Serialized Form

    Field Summary

    static int
    DEFAULT_SECURE_PORT
    The default port number for secure LDAP connections.
    static String
    defaultFilter

    Constructor Summary

    LDAPUrl(String url)
    Constructs a URL object with the specified string as URL.
    LDAPUrl(String host, int port, String DN)
    Constructs with the specified host, port, and DN.
    LDAPUrl(String host, int port, String DN, Enumeration attributes, int scope, String filter)
    Constructs a full-blown LDAP URL to specify an LDAP search operation.
    LDAPUrl(String host, int port, String DN, String[] attributes, int scope, String filter, boolean secure)
    Constructs a full-blown LDAP URL to specify an LDAP search operation.
    LDAPUrl(String host, int port, String DN, attributes[] , int scope, String filter)
    Constructs a full-blown LDAP URL to specify an LDAP search operation.

    Method Summary

    static String
    decode(String URLEncoded)
    Decodes a URL-encoded string.
    static String
    encode(String toEncode)
    Encodes an arbitrary string.
    boolean
    equals(LDAPUrl url)
    Reports if the two objects represent the same URL
    String[]
    getAttributeArray()
    Return the collection of attributes specified in the URL, or null for "every attribute"
    Enumeration
    getAttributes()
    Return the collection of attributes specified in the URL, or null for "every attribute"
    String
    getDN()
    Return the distinguished name encapsulated in the URL
    String
    getFilter()
    Returns the search filter (RFC 1558), or the default if none was specified.
    String
    getHost()
    Return the host name of the LDAP server
    int
    getPort()
    Return the port number for the LDAP server
    int
    getScope()
    Returns the scope of the search, according to the values SCOPE_BASE, SCOPE_ONE, SCOPE_SUB as defined in LDAPv2.
    static LDAPSocketFactory
    getSocketFactory()
    Gets the socket factory to be used for ldaps:// URLs.
    String
    getUrl()
    Returns a valid string representation of this LDAP URL.
    boolean
    isSecure()
    Returns true if the secure ldap protocol is used.
    static void
    setSocketFactory(LDAPSocketFactory factory)
    Sets the socket factory to be used for ldaps:// URLs.
    String
    toString()
    Returns the URL in String format

    Field Details

    DEFAULT_SECURE_PORT

    public static final int DEFAULT_SECURE_PORT
    The default port number for secure LDAP connections.
    Field Value:
    636
    See Also:
    netscape.ldap.LDAPUrl.LDAPUrl(java.lang.String, int, java.lang.String, java.lang.String[], int, java.lang.String, boolean)

    defaultFilter

    public static String defaultFilter

    Constructor Details

    LDAPUrl

    public LDAPUrl(String url)
                throws java.net.MalformedURLException
    Constructs a URL object with the specified string as URL.
    Parameters:
    url - LDAP search expression in URL form

    LDAPUrl

    public LDAPUrl(String host,
                   int port,
                   String DN)
    Constructs with the specified host, port, and DN. This form is used to create URL references to a particular object in the directory.
    Parameters:
    host - host name of the LDAP server, or null for "nearest X.500/LDAP"
    port - port number of the LDAP server (use LDAPv2.DEFAULT_PORT for the default port)
    DN - distinguished name of the object

    LDAPUrl

    public LDAPUrl(String host,
                   int port,
                   String DN,
                   Enumeration attributes,
                   int scope,
                   String filter)
    Constructs a full-blown LDAP URL to specify an LDAP search operation.
    Parameters:
    host - host name of the LDAP server, or null for "nearest X.500/LDAP"
    port - port number of the LDAP server (use LDAPv2.DEFAULT_PORT for the default port)
    DN - distinguished name of the object
    attributes - list of the attributes to return. Use null for "all attributes."
    scope - depth of the search (in DN namespace). Use one of the LDAPv2 scopes: SCOPE_BASE, SCOPE_ONE, or SCOPE_SUB.
    filter - LDAP filter string (as defined in RFC 1558). Use null for no filter (this effectively makes the URL reference a single object).

    LDAPUrl

    public LDAPUrl(String host,
                   int port,
                   String DN,
                   String[] attributes,
                   int scope,
                   String filter,
                   boolean secure)
    Constructs a full-blown LDAP URL to specify an LDAP search operation.
    Parameters:
    host - host name of the LDAP server, or null for "nearest X.500/LDAP"
    port - port number of the LDAP server (use LDAPv2.DEFAULT_PORT for the default non-secure port or LDAPUrl.DEFAULT_SECURE_PORT for the default secure port)
    DN - distinguished name of the object
    attributes - list of the attributes to return. Use null for "all attributes."
    scope - depth of the search (in DN namespace). Use one of the LDAPv2 scopes: SCOPE_BASE, SCOPE_ONE, or SCOPE_SUB.
    filter - LDAP filter string (as defined in RFC 1558). Use null for no filter (this effectively makes the URL reference a single object).
    secure - flag if secure ldap protocol (ldaps) is to be used.

    LDAPUrl

    public LDAPUrl(String host,
                   int port,
                   String DN,
                   attributes[] ,
                   int scope,
                   String filter)
    Constructs a full-blown LDAP URL to specify an LDAP search operation.
    Parameters:
    host - host name of the LDAP server, or null for "nearest X.500/LDAP"
    port - port number of the LDAP server (use LDAPv2.DEFAULT_PORT for the default port)
    DN - distinguished name of the object
    scope - depth of search (in DN namespace). Use one of the LDAPv2 scopes: SCOPE_BASE, SCOPE_ONE, or SCOPE_SUB.
    filter - LDAP filter string (as defined in RFC 1558). Use null for no filter (this effectively makes the URL reference a single object).

    Method Details

    decode

    public static String decode(String URLEncoded)
                throws MalformedURLException
    Decodes a URL-encoded string. Any occurences of %HH are decoded to the hex value represented. However, this routine does NOT decode "+" into " ". See RFC 1738 for full details about URL encoding/decoding.
    Parameters:
    URLEncoded - a segment of a URL which was encoded using the URL encoding rules

    encode

    public static String encode(String toEncode)
    Encodes an arbitrary string. Any illegal characters are encoded as %HH. However, this routine does NOT decode "+" into " " (this is a HTTP thing, not a general URL thing). Note that, because Sun's URLEncoder does do this encoding, we can't use it. See RFC 1738 for full details about URL encoding/decoding.
    Parameters:
    toEncode - an arbitrary string to encode for embedding within a URL

    equals

    public boolean equals(LDAPUrl url)
    Reports if the two objects represent the same URL
    Parameters:
    url - the object to be compared to
    Returns:
    true if the two are equivalent

    getAttributeArray

    public String[] getAttributeArray()
    Return the collection of attributes specified in the URL, or null for "every attribute"
    Returns:
    string array of attributes.

    getAttributes

    public Enumeration getAttributes()
    Return the collection of attributes specified in the URL, or null for "every attribute"
    Returns:
    enumeration of attributes.

    getDN

    public String getDN()
    Return the distinguished name encapsulated in the URL
    Returns:
    target distinguished name.

    getFilter

    public String getFilter()
    Returns the search filter (RFC 1558), or the default if none was specified.
    Returns:
    the search filter.

    getHost

    public String getHost()
    Return the host name of the LDAP server
    Returns:
    LDAP host.

    getPort

    public int getPort()
    Return the port number for the LDAP server
    Returns:
    port number.

    getScope

    public int getScope()
    Returns the scope of the search, according to the values SCOPE_BASE, SCOPE_ONE, SCOPE_SUB as defined in LDAPv2. This refers to how deep within the directory namespace the search will look
    Returns:
    search scope.

    getSocketFactory

    public static LDAPSocketFactory getSocketFactory()
    Gets the socket factory to be used for ldaps:// URLs.

    If the factory is not explicitly specified with LDAPUrl.setSocketFactory, the method will attempt the determine the default factory based on the available factories in the netscape.ldap.factory package.

    Returns:
    the socket factory to be used for ldaps:// URLs

    getUrl

    public String getUrl()
    Returns a valid string representation of this LDAP URL.
    Returns:
    the LDAP search expression in URL form.

    isSecure

    public boolean isSecure()
    Returns true if the secure ldap protocol is used.
    Returns:
    true if ldaps is used.

    setSocketFactory

    public static void setSocketFactory(LDAPSocketFactory factory)
    Sets the socket factory to be used for ldaps:// URLs. Overrides the default factory assigned by the LDAPUrl class.
    Parameters:
    factory - the socket factory to be used for ldaps:// URLs

    toString

    public String toString()
    Returns the URL in String format
    Returns:
    the URL in String format