2014-08-28 3 views
0

Я разрабатываю веб-приложение LDAP, которое обеспечивает доступ к активной информации каталога. Я использую unboundid java sdk для взаимодействия с AD через java-код. Теперь я пытаюсь экспортировать информацию активного каталога в формате LDIF с сервера AD на клиент. Вот пример кода.Как экспортировать данные LDAP в формат 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); 
    } 

В настоящее время, я создаю новый файл LDIF для каждого запроса клиента и записи необходимых LDAP записи к нему и отправить его клиенту. Я могу отправить этот файл клиенту через HTTP-ответ, но для каждого нового запроса мне нужно создать новый файл. Я не думаю, что это приемлемое решение. Мой вопрос заключается в том, как отправить данные LDIF с сервера на клиент, не создавая новый файл для каждого запроса на стороне сервера? Пожалуйста, предложите мне другие лучшие подходы для чтения записей LDAP из AD, конвертирования их в формат LDIF и отправки этого файла клиенту. А также есть ли какой-либо MIME-тип для LDIF? Заранее спасибо !!!

ответ

0

Итак, ваш вопрос заключается в том, как писать контент LDIF непосредственно на ответ http вместо того, чтобы иметь временный выходной файл.

Вместо того, чтобы писать это:

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

Вы можете сделать

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

Я не есть тип MIME специально для LDIF.

Это довольно старый пост. Надеюсь, что это поможет кому-то другому.