【问题标题】:How to export LDAP data to LDIF format?如何将 LDAP 数据导出为 LDIF 格式?
【发布时间】:2014-08-28 20:25:27
【问题描述】:

我正在开发一个访问活动目录信息的 LDAP Web 应用程序。我正在使用 unboundid java sdk 通过 java 代码与 AD 交互。现在,我正在尝试以 LDIF 格式将活动目录信息从 AD 服务器导出到客户端。这是示例代码。

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 类型吗?提前谢谢!!!

【问题讨论】:

    标签: java active-directory ldap unboundid-ldap-sdk


    【解决方案1】:

    所以您的问题是如何将 LDIF 内容直接写入 http 响应,而不是使用临时输出文件。

    而不是这样写:

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

    你可以的

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

    我没有专门用于 ldif 的 MIME 类型。

    这是一个相当老的帖子。希望它可以帮助其他人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      相关资源
      最近更新 更多