Verzeichnisdienste, die LDAP (Lightweight Directory Access Protocol) unterstützen, werden immer mehr für die Authentifizierung in Applikationen eingesetzt.
Wie einfach es ist, mit der Java basierten Scriptsprache Groovy einen LDAP Server abzufragen, zeigt das Apache Directory Projekt mit seiner Bibliothek groovy-ldap.
Nach dem Download und dem Auspacken der Zip Datei, brauch man nur noch das jar Archiv in den Klassenpfad aufnehmen und dann kann es auch schon losgehen. Hier ein kleines Beispiel:
package de.koo.groovy.ldap import org.apache.directory.groovyldap.LDAP import org.apache.directory.groovyldap.SearchScope public class LdapSearch{ private LDAP conn; public LdapSearch () { conn = LDAP.newInstance('ldap://ldap.uno.edu:389') assert (conn!=null) println("connected") } public void searchAny() { // alle Studenten try { conn.eachEntry (filter:'(sn=*)' ,base:'ou=Students,o=UNIVERSITY OF NEW ORLEANS,c=US') {student -> println student.cn } } catch (Exception e) {} } public void searchWithName(name) { def students=conn.search("(sn=${name})" ,'ou=Students,o=UNIVERSITY OF NEW ORLEANS,c=US' ,SearchScope.SUB) students.each {student -> println student.cn } } public boolean isInLdap(dn) { // Existiert ein Eintrag return conn.exists(dn) } public void read(dn) { // Auslesen eines einzelnen Eintrags def student=conn.read(dn) println "${student.sn} (mail: ${student.mail})" } static void main(args) { LdapSearch ls=new LdapSearch() ls.searchAny() ls.searchWithName("Fu") def dn='cn=Erin Lee Sheehan,ou=Students,o=UNIVERSITY OF NEW ORLEANS,c=US' if (ls.isInLdap(dn)) ls.read(dn) } }
Auf der Wiki Seite des Projekts und im Artikel von Groovy Zone befinden sich auch Beispiele zum Hinzufügen, Ändern und Löschen von LDAP Einträgen.
Eine Liste öffentlicher LDAP Server zum Testen gibt es auch.