Package netscape.ldap
Class LDAPUrl
java.lang.Object
netscape.ldap.LDAPUrl
- All Implemented Interfaces:
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
- all text within double-quotes are literal
hostName
andportNumber
identify the location of the LDAP server.distinguishedName
is the name of an entry within the given directory (the entry represents the starting point of the search)attributeList
contains a list of attributes to retrieve (if null, fetch all attributes). This is a comma-delimited list of attribute names.scope
is one of the following:base
indicates that this is a search only for the specified entryone
indicates that this is a search for matching entries one level under the specified entry (and not including the entry itself)sub
indicates that this is a search for matching entries at all levels under the specified entry (including the entry itself)
If not specified,
scope
isbase
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:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
The default port number for secure LDAP connections.static String
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs a URL object with the specified string as URL.Constructs with the specified host, port, and DN.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.Constructs a full-blown LDAP URL to specify an LDAP search operation. -
Method Summary
Modifier and TypeMethodDescriptionstatic String
Decodes a URL-encoded string.static String
Encodes an arbitrary string.boolean
Reports if the two objects represent the same URLString[]
Return the collection of attributes specified in the URL, or null for "every attribute"Return the collection of attributes specified in the URL, or null for "every attribute"getDN()
Return the distinguished name encapsulated in the URLReturns the search filter (RFC 1558), or the default if none was specified.getHost()
Return the host name of the LDAP serverint
getPort()
Return the port number for the LDAP serverint
getScope()
Returns the scope of the search, according to the values SCOPE_BASE, SCOPE_ONE, SCOPE_SUB as defined in LDAPv2.static LDAPSocketFactory
Gets the socket factory to be used for ldaps:// URLs.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.toString()
Returns the URL in String format
-
Field Details
-
defaultFilter
-
DEFAULT_SECURE_PORT
public static final int DEFAULT_SECURE_PORTThe default port number for secure LDAP connections.
-
-
Constructor Details
-
LDAPUrl
Constructs a URL object with the specified string as URL.- Parameters:
url
- LDAP search expression in URL form- Throws:
MalformedURLException
- failed to parse URL
-
LDAPUrl
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
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 objectattributes
- list of attributes to return. Use null for "all attributes."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).
-
LDAPUrl
public LDAPUrl(String host, int port, String DN, Enumeration<String> 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 objectattributes
- 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 objectattributes
- 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.
-
-
Method Details
-
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.
-
getDN
Return the distinguished name encapsulated in the URL- Returns:
- target distinguished name.
-
getAttributes
Return the collection of attributes specified in the URL, or null for "every attribute"- Returns:
- enumeration of attributes.
-
getAttributeArray
Return the collection of attributes specified in the URL, or null for "every attribute"- Returns:
- string array of attributes.
-
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.
-
getFilter
Returns the search filter (RFC 1558), or the default if none was specified.- Returns:
- the search filter.
-
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.
-
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
-
setSocketFactory
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- See Also:
-
decode
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- Throws:
MalformedURLException
- failed to parse URL
-
encode
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
-
toString
Returns the URL in String format -
equals
Reports if the two objects represent the same URL- Parameters:
url
- the object to be compared to- Returns:
true
if the two are equivalent
-