如何使用 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);
}
我需要将 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);
}