Provides an interface to a Lightweight Directory Access Protocol (LDAP) directory server, such as the Netscape Directory Server.
<cfldap
server = "server_name"
port = "port_number"
username = "name"
password = "password"
action = "action"
name = "name"
timeout = "seconds"
maxRows = "number"
start = "distinguished_name"
scope = "scope"
attributes = "attribute, attribute"
returnAsBinary = "column_name, column_name"
filter = "filter"
sort = "attribute[, attribute]..."
sortControl = "nocase" and/or "desc" or "asc"
dn = "distinguished_name"
startRow = "row_number"
modifyType = "replace" or "add" or "delete"
rebind = "yes" or "no"
referral = "number_of_allowed_hops"
secure = "multi_field_security_string"
separator = "separator_character"
delimiter = "delimiter_character">
cfftp
,
cfhttp
,
cfmail
,
cfmailparam
,
cfpop
,
Managing LDAP Directories in ColdFusion MX Developer's Guide
ColdFusion MX 7: Added the returnAsBinary
attribute.
ColdFusion MX:
name
attribute behavior: this tag validates the query name in the name
attribute.
sort
and sortcontrol
attributes.)
filterfile
attribute. It might not work, and might cause an error, in later releases.
Attribute | Req/Opt | Default | Description |
---|---|---|---|
server |
Required |
|
Host name or IP address of LDAP server. |
port |
Optional |
389 |
Port. |
username |
Required if |
(anonymous) |
User ID. |
password |
Required if |
|
Password that corresponds to user name. If |
action |
Required |
query |
|
name |
Required if |
|
Name of LDAP query. The tag validates the value. |
timeout |
Optional |
60000 |
Maximum length of time, in milliseconds, to wait for LDAP processing. |
maxRows |
Optional |
|
Maximum number of entries for LDAP queries. |
start |
Required if |
|
Distinguished name of entry to be used to start a search. |
scope |
Optional |
oneLevel |
Scope of search, from entry specified in
|
attributes |
Required if |
|
For queries: comma-delimited list of attributes to return. For queries, to get all attributes, specify If If |
returnAsBinary |
Optional |
|
A comma-delimited list of columns that are to be returned as binary values. |
filter |
Optional |
"objectclass = *" |
Search criteria for List attributes in the form: |
sort |
Optional |
|
Attribute(s) by which to sort query results. Use a comma delimiter. |
sortControl |
Optional |
asc |
You can enter a combination of sort types; for example, |
dn |
Required if |
|
Distinguished name, for |
startRow |
Optional |
1 |
Used with |
modifyType |
Optional |
replace |
How to process an attribute in a multi-value list:
You cannot add an attribute that is already present or that is empty. |
rebind |
Optional |
no |
|
referral |
Optional |
|
Integer. Number of hops allowed in a referral. A value of 0 disables referred addresses for LDAP; no data is returned. |
secure |
Optional |
|
Security to employ, and required information. One option:
"CFSSL_BASIC" provides V2 SSL encryption |
separator |
Optional |
, [comma] |
Delimiter to separate attribute values of multi-value attributes. Used by For example, if |
delimiter |
Optional |
; [semicolon] |
Separator between attribute name-value pairs. Use this attribute if either of these situations exist:
Used by For example, if |
If you use the query action, cfldap
creates a query object, allowing access to information in the query variables, as follows:
Variable name | Description |
---|---|
queryname.recordCount |
Number of records returned by query |
queryname.currentRow |
Current row of query that |
queryname.columnList |
Column names in query |
If you use the security="CFSSL_BASIC"
option, ColdFusion determines whether to trust the server by comparing the server's certificate with the information in the jre/lib/security/cacerts keystore of the JRE used by ColdFusion MX. The ColdFusion MX default cacerts file contains information about many certificate granting authorities. If you must update the file with additional information, you can use the keytool utility in the ColdFusion jre/bin directory to import certificates that are in X.509 format. For example, enter the following:
keytool -import -keystore cacerts -alias ldap -file ldap.crt -keypass bl19mq
Then restart ColdFusion MX. The keytool utility initial keypass
password is "change it". For more information on using the keytool utility, see the Sun JDK documentation
Characters that are illegal in ColdFusion can be used in LDAP attribute names. As a result, the cfldap
tag could create columns in the query result set whose names contain illegal characters and are, therefore, inaccessible in CFML. In ColdFusion, illegal characters are automatically mapped to the underscore character; therefore, column names in the query result set might not exactly match the names of the LDAP attributes.
For usage examples, see ColdFusion MX Developer's Guide.
<h3>cfldap Example</h3> <p>Provides an interface to LDAP directory servers. The example uses the University of Connecticut public LDAP server. For more public LDAP servers, see <a href="http://www.emailman.com">http://www.emailman.com</a>.</p> <p>Enter a name and search the public LDAP resource. An asterisk before or after the name acts as a wildcard.</p> <!--- If form.name exists, the form was submitted; run the query. ---> <cfif IsDefined("form.name")> <!--- Check to see that there is a name listed. ---> <cfif form.name is not ""> <!--- Make the LDAP query. ---> <cfldap server = "ldap.uconn.edu" action = "query" name = "results" start = "dc=uconn,dc=edu" filter = "cn=#name#" attributes = "cn,o,title,mail,telephonenumber" sort = "cn ASC"> <!--- Display results. ---> <center> <table border = 0 cellspacing = 2 cellpadding = 2> <tr> <th colspan = 5> <cfoutput>#results.recordCount# matches found </cfoutput></TH> </tr> <tr> <th><font size = "-2">Name</font></TH> <th><font size = "-2">Organization</font></TH> <th><font size = "-2">Title</font></TH> <th><font size = "-2">E-Mail</font></TH> <th><font size = "-2">Phone</font></TH> </tr> <cfoutput query = "results"> <tr> <td><font size = "-2">#cn#</font></td> <td><font size = "-2">#o#</font></td> <td><font size = "-2">#title#</font></td> <td><font size = "-2"> <A href = "mailto:#mail#">#mail#</A></font></td> <td><font size = "-2">#telephonenumber#</font></td> </tr> </cfoutput> </table> </center> </cfif> </cfif> <form action="#cgi.script_name#" method="POST"> <p>Enter a name to search in the database. <p> <input type="Text" name="name"> <input type="Submit" value="Search" name=""> </form>