Understanding LDAP by Basit Hussain Listing One dn: o=MicroWidgets Inc, c=US objectclass: top objectclass: organization o: MicroWidgets Inc. subtreeaci: +(&(privilege=write)(target=ldap:///self)) subtreeaci: +(&(privilege=write)(clientGroup=ldap:///cn=Directory Administrators, o=MicroWidgets Inc, c=US)) subtreeaci: +(privilege=compare) subtreeaci: +(|(privilege=search)(privilege=read)) dn: ou=System Administration, o=MicroWidgets Inc, c=US objectclass: top objectclass: organizationalunit ou: System Administration dn: ou=Application Development, o=MicroWidgets Inc, c=US objectclass: top objectclass: organizationalunit ou: Application Development dn: ou=Project Administration, o=MicroWidgets Inc, c=US objectclass: top objectclass: organizationalunit ou: Project Administration dn: cn=Directory Administrators, o=MicroWidgets Inc, c=US cn: Directory Administrators objectclass: top objectclass: groupofuniquenames uniquemember: cn=Bill Merchant, ou=System Administration, o=MicroWidgets Inc, c=US uniquemember: cn=David Builder, ou=Application Development, o=MicroWidgets Inc, c=US dn: cn=Bill Merchant, ou=System Administration, o=MicroWidgets Inc, c=US cn: Bill Merchant sn: Merchant givenname: Bill objectclass: top objectclass: person objectclass: organizationalPerson objectclass: inetOrgPerson ou: System Administration l: Yukon uid: bmerchant mail: bmerchant@MicroWidgets.com telephonenumber: +1 999 000 6084 facsimiletelephonenumber: +1 999 000 6138 userpassword: hackit . . . Listing Two package ldap.directory; import java.lang.*; import java.util.*; import java.io.*; import netscape.ldap.*; public class DirectoryTests { private String authDN = "cn=Bill Merchant,ou=System Administration, o=Microwidgets Inc,c=US"; private String authPW = "hackit"; private String ldapHost = "r2d2.microwidgets.com"; private int ldapPort = 1389; public void searchEntries(){ LDAPSearchResults ldr = null; LDAPAttributeSet lds = null; LDAPEntry lde = null; LDAPConnection ldc = new LDAPConnection(); try{ ldc.connect(ldapHost, ldapPort); } catch (LDAPException e){ System.err.println("Connection error"); } try{ ldr= ldc.search("o=MicroWidgets Inc, c=US",LDAPv2.SCOPE_SUB, "(ou=Application Development)",null,false); } catch (LDAPException e){ System.err.println(e.toString()); } try{ while (ldr.hasMoreElements()){ lde=ldr.next(); String ndn = lde.getDN(); lds=lde.getAttributeSet(); System.out.println("\n\n"+ndn+"\n"); System.out.println(lds.toString()); } } catch (LDAPReferralException e){ //process referrals here } try { ldc.disconnect(); } catch (LDAPException e){ System.err.println("Not connected"); } } public void addEntry() { LDAPAttributeSet lds = null; LDAPEntry lde = null; LDAPConnection ldc = new LDAPConnection(); try{ ldc.connect(ldapHost, ldapPort); } catch (LDAPException e){ System.err.println("Connection Error"); } try{ ldc.authenticate(authDN,authPW); } catch (LDAPException e){ System.err.println(e.toString()); } try{ String newdn = "cn=Bobby Windsor, ou=Application Development, o=Microwidgets Inc, c=US"; String[] attrlist= {"cn","sn","ou","objectclass","objectclass", "objectclass","objectclass","uid","userpassword","mail"}; String[] vallist={"Bobby Windsor","Windsor","Application Development", "top","person","organizationalPerson","inetOrgPerson", "bwindsor","tackit","bwindsor@microwidgets.com"}; lds = new LDAPAttributeSet(); for (int i=0;i