Mar 29

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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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.

Lesezeichen setzen:
  • Digg
  • del.icio.us
  • Netvouz
  • DZone
  • ThisNext
  • MisterWong
  • Wists
  • Technorati
  • Google Bookmarks

Ähnliche Artikel:

geschrieben von gklinkmann \\ tags: , , ,

Kommentar abgeben

Ja, ich möchte bei Kommentaren benachrichtigt werden!