2014-08-28 146 views
0

我正在開發一個LDAP Web應用程序,它訪問活動目錄信息。我正在使用unboundid java sdk通過Java代碼與AD進行交互。現在,我正在嘗試將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數據從服務器發送到客戶端,而無需爲服務器端的每個請求創建新文件?請給我建議從AD讀取LDAP記錄的其他最佳方法,將它們轉換爲LDIF格式並將此文件發送給客戶端。 LDIF還有MIME類型嗎?提前致謝 !!!

回答

0

所以你的問題是如何直接寫入LDIF內容到http響應而不是臨時輸出文件。

而不是寫這個的:

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

你可以做

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

我不存在對LDIF MIME類型明確。

這是一個相當古老的帖子,希望它能幫助別人。