читать LDAP с Java - PullRequest
       2

читать LDAP с Java

4 голосов
/ 07 июня 2010

Мне нужен эффективный способ чтения всех пользователей из LDAP. У меня есть супер / пароль root в Java

Все, что мне нужно, это просто перечислить имена.

Все идеи приветствуются.

1 Ответ

4 голосов
/ 07 июня 2010

Вы можете найти хороший пример кода здесь :

Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/dc=fraglab,dc=net");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=admin,dc=fraglab,dc=net");
env.put(Context.SECURITY_CREDENTIALS, "yannis");
DirContext ctx = new InitialDirContext(env);
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
searchControls.setCountLimit(10);
NamingEnumeration<SearchResult> namingEnumeration =
        ctx.search("", "(uid=*)", new Object[]{}, searchControls);
while (namingEnumeration.hasMore()) {
    SearchResult sr = namingEnumeration.next();
    System.out.println("DN: " + sr.getName());
    System.out.println(sr.getAttributes().get("uid"));
    System.out.println("Password:" + new String((byte[]) sr.getAttributes().get("userPassword").get()));
}
ctx.close();

Используется поставщик услуг именования LDAP для Java Naming and Directory Interface JNDI и должен делать то, что вы хотите, с небольшими адаптациями (например, введите имя вашего сервера, по крайней мере). Документация для провайдера ldap довольно хорошая и поможет вам расширить ее для ваших нужд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...