29 de marzo

Apache Directory groovy-ldap

Servicios de directorio, LDAP de apoyo (L D ightweight irectorio E l acceso P rotocolo) están cada vez más utilizada para la autenticación en las aplicaciones.

¿Qué tan fácil es con la basada en Java, lenguaje de scripting Groovy para consultar un servidor LDAP, muestra el proyecto Directorio de Apache, con su biblioteca groovy-ldap .

Después de la descarga y descomprimir el archivo ZIP, sólo tiene que incluir el archivo jar en el classpath y entonces el juego puede comenzar. Aquí está un ejemplo rápido:

  A
 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
  paquete de de.koo.groovy.ldap

 importación org.apache.directory.groovyldap.LDAP
 importación org.apache.directory.groovyldap.SearchScope

 public class {ldapsearch
   privada CONN LDAP;

   ldapsearch pública () {
     ( 'ldap://ldap.uno.edu:389' ) conn = LDAP newInstance ('ldap :/ / ldap.uno.edu: 389').
     conn != null ) assert (conn! = null)
     "connected" ) System.out.println ("conectado")
   }

   searchAny ( ) { searchAny public void () {
     / / Todos los alumnos
     try {
       filter: '(sn=*)' . '(Sn = *)': cada entrada (conn filtro
                student -> , Base: "ou = o = Estudiantes, Universidad de Nueva Orleans, c = EE.UU.") {estudiante ->  
         estudiante println. cn
       }    
     ( Exception e ) { } } Catch (Exception e) {}
   }

   searchWithName ( name ) { Buscar public void con el nombre de (nombre) {
     conn. search ( "(sn=${name})" = Conn estudiantes def. De búsqueda ("(sn = $ {nombre})"
         , 'Ou = Estudiantes, o = Universidad de Nueva Orleans, c = EE.UU. "
         , Ámbito de búsqueda. SUB)
     student -> estudiantes de cada alumno {-.>        
       estudiante println. cn
     }
   }

   isInLdap ( dn ) { public boolean isInLdap (dn) {
     / / Si hay una entrada
     ( dn ) CONN volver. existe (dn)
   }

   read ( dn ) { public void leer (dn) {
     / / Leer una sola entrada
     conn. read ( dn ) = Conn definición de los estudiantes. Leer (dn)
     "student.sn $ {} (mail: $ {} student.mail)" println

   }

   main ( args ) { public static void main (args) {
     LdapSearch ( ) Ls = ldapsearch ldapsearch nuevo ()
     ls. searchAny ()
     "Fu" ) ls. de búsqueda con el nombre ("Fu")

     'cn=Erin Lee Sheehan,ou=Students,o=UNIVERSITY OF NEW ORLEANS,c=US' def dn = "cn = Erin Lee Sheehan, ou = alumnos, o = Universidad de Nueva Orleans, c = EE.UU."
     ls. isInLdap ( dn ) ) ls. read ( dn ) if (Ls. isInLdap (dn)) ls. leer (dn)
   }
 } 

En la página wiki del proyecto y los artículos de Groovy zona son también ejemplos para añadir, modificar y borrar las entradas LDAP.
Una lista de los servidores públicos de LDAP para la prueba, los hay.

gklinkmann escrito por \ \ tags: , , ,

Añadir un comentario

Sí, me gustaría ser notificado sobre comentarios!