I've been playing with LDAP
directories from Jython and thought I should share a couple of useful
examples of what you can do. The first of these is a quick barebones
query example. Enjoy.
# Jython LDAP Example
from javax.naming import *
from java.util import *
from javax.naming.directory import *
# Credentials to access LDAP
user = "cn=master"
passwd = "password"
# Query starting point and query target
search_start = "ou=People,dc=Company,dc=com"
search_target = "uid=aUserID"
# Setup LDAP Context Options
settings = Hashtable()
settings.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory")
settings.put(Context.PROVIDER_URL, "ldap://localhost:389")
settings.put(Context.SECURITY_PRINCIPAL, user)
settings.put(Context.SECURITY_CREDENTIALS, passwd)
# Connect to LDAP Server
ctx = InitialDirContext(settings)
srch = SearchControls()
srch.setSearchScope(SearchControls.SUBTREE_SCOPE)
# Execute LDAP Search
results = ctx.search(search_start, search_target, srch )
#Display Search`
for result in results:
attributes = result.getAttributes()
names = []
for atr in attributes.getIDs():
names.append(str(atr))
for name in names:
print attributes.get(name)
[