0

我正在开发一个访问活动目录信息的 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 类型吗?提前致谢 !!!

4

1 回答 1

0

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

而不是这样写:

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

你可以做

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

我没有专门针对 ldif 的 MIME 类型。

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

于 2014-11-25T06:13:48.493 回答