Groovy und LDAP

Apache Directory groovy-ldap

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.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

%d Bloggern gefällt das: