如何使用 java api 将 Ldif 文件中的默认数据添加到 Ldap 服务器?

How to add the Default data from Ldif file to the Ldap Server with the java api?

我需要将 ldif 文件中的批量数据添加到 LDAP 服务器中。我研究了 java 个 API,但找不到合适的

我已经尝试使用 LdapTestUtils,但它需要重新启动服务器。除了这个

,我需要另一种方法

您将需要使用 API 支持 LDIF 导入的单独库。一旦这样的图书馆是Apache Directory LDAP API。该库通常与大多数 LDAP 服务器兼容。

参考 documentation, The LdifFileLoader class has features to import LDIF, in tandem with DefaultDirectoryService class (unfortunately I am unable to locate my earlier code demonstrating the LDIF import). You could refer this post,它展示了如何使用上面的内容,尽管它处理的是不同类型的问题。

我不确定您正在使用的 LDAP 服务器,但是,您可以试一试上面的内容并进行检查。

也可以通过LdapTemplate实现。 LdapParser 将从 ldif 文件中以 LdapAttribute 的形式解析记录,然后通过 ldapTemplate.bind

绑定此记录
LdapContextSource contextSource = new LdapContextSource();

        contextSource.setUrl("ldap://192.168.99.101:389/");
        contextSource.setUserDn("uid=admin,dc=abc,dc=com");
        contextSource.setPassword(********);
        contextSource.setPooled(false);
        contextSource.afterPropertiesSet();

        LdapTemplate template = new LdapTemplate(contextSource);
        LdifParser parser = new LdifParser(new ClassPathResource("schema.ldif"));
        parser.open();
        while (parser.hasMoreRecords()) {
            LdapAttributes record = parser.getRecord();
            LdapName dn = record.getName();
            template.bind(dn, null, record);
        }