2014-08-28 4 views
0

Je développe une application Web LDAP, qui accède aux informations d'annuaire actives. J'utilise java sdk unboundid pour interagir avec AD via le code java. Maintenant, j'essaye d'exporter l'information active d'annuaire dans le format de LDIF du serveur d'AD au client. Voici l exemple de code.Comment exporter des données LDAP au format LDIF?

File file = new File(filePath + "\\export.ldif"); 

    // Write all of the matching entries to LDIF. 
    LDIFWriter ldifWriter; 
    try { 
     OutputStream output = new FileOutputStream(file, true); 
     ldifWriter = new LDIFWriter(output); 
     for (SearchResultEntry entry : searchResult) { 
      ldifWriter.writeEntry(entry); 
     } 

     ldifWriter.close(); 
     output.close(); 
    } catch (IOException e) { 
     throw new LDAPApplicationException(
       "Error writing to file, try again", e); 
    } 

A partir de maintenant, je suis en train de créer un nouveau fichier LDIF pour chaque demande client et l'écriture des enregistrements LDAP nécessaires pour lui et l'envoyer au client. Je peux envoyer ce fichier au client via la réponse HTTP, mais pour chaque nouvelle demande, je dois créer un nouveau fichier. Je ne pense pas que ce soit une solution faisable. Ma question est comment envoyer les données LDIF du serveur au client sans créer de nouveau fichier pour chaque demande sur le côté serveur? Veuillez me suggérer d'autres approches pour lire les enregistrements LDAP d'AD, les convertir au format LDIF et envoyer ce fichier au client. Et aussi existe-t-il un type MIME pour LDIF? Merci d'avance !!!

Répondre

0

Votre question est donc sur la façon d'écrire le contenu LDIF directement à la réponse http au lieu d'avoir un fichier de sortie temporaire.

Au lieu d'écrire ceci:

OutputStream output = new FileOutputStream(file, true); 
ldifWriter = new LDIFWriter(output); 

Vous pouvez faire

ServletOutputStream sos = response.getOutputStream(); 
ldifWriter = new LDIFWriter(sos); 

Je ne pas qu'il y ait un type MIME spécifiquement pour LDIF.

C'est un peu vieux post.Hope il aide quelqu'un d'autre là-bas.

Questions connexes