Adding entries to the server is the first thing you should do. To
add entries to slapd, you use
ldapadd, which reads the
content of an
ldif file, checks the validity of its
entries, and adds the entries to the server if the entries are
To add entries to the LDAP server, you need to pass the domain name
and the password for the root user. For example, with the following
command you pass the domain name (
and the password (
secret) and the
example.ldif containing the entries to be added.
ldapadd -x -D "cn=Manager ,dc=sendal,dc=jepit,dc=edu,dc=au" -w
secret -f example.ldif
The argument list of
ldapadd can be displayed by
ldapadd with no arguments.
LDAP Data Interchange Format (LDIF)
As mentioned above, the LDIF is used to represent LDAP entries in text form. The basic syntax of an LDIF entry is
. [<id>] dn: <distinguished name> <attrtype>: <attrvalue> <attrtype>: <attrvalue> ...
<id> is the optional entry ID (a positive
decimal number). Normally, you would not supply the
allowing the database creation tools to do that for you. A line may be
continued by starting the next line with a single space or tab character, as
dn: cn=Frank Dominic, o=University of Michigan, c=US
Multiple attribute values are specified on separate lines.
cn: Frank Dominic cn: Frank B Dominic
<attrvalue> contains a non-printing
character, or begins with a space or a colon (
<attrtype> is followed by a double colon and the
value is encoded in base 64 notation. e.g., the value " begins
with a space" would be encoded like this:
Blank lines separate multiple entries within the same LDIF file.
Here is an example of an LDIF file containing three entries.
dn: cn=Barbara J Jensen, o=University of Michigan, c=US cn: Barbara J Jensen cn: Babs Jensen objectclass: person sn: Jensen dn: cn=Bjorn J Jensen, o=University of Michigan, c=US cn: Bjorn J Jensen cn: Bjorn Jensen objectclass: person sn: Jensen dn: cn=Jennifer J Jensen, o=University of Michigan, c=US cn: Jennifer J Jensen cn: Jennifer Jensen objectclass: person sn: Jensen jpegPhoto:: /9j/4AAQSkZJRgABAAAAAQABAAD/2wBDABALD A4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQ ERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVG ...
Notice that the jpegPhoto in Jennifer Jensen's entry is encoded in base 64.
Java Naming and Directory Interface (JNDI)
The JNDI is API for writing programs to access naming and directory services.
The JNDI is grouped into five packages.
For the project in this article you only need the
JNDI is included in version 1.3 of Java 2 SDK. If you are using this version, you are in luck. For users of JDK 1.1 and Java 2 SDK version 1.2, the JNDI can be downloaded and installed separately. In the Java 2 SDK, version 1.3, you can find service providers for the following services:
- CORBA Common Object Service (COS) name service
- Java Remote Method Invocation (RMI) Registry.
If you are using an older version of Java, you must first download the JNDI as a Standard Extension on the JDK 1.1 and Java 2 SDK, version 1.2.
You must also download one or more service providers. These service providers act like JDBC drivers for database access.