[Oracle ADF] Получение параметров из AD


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.*;
import java.util.Hashtable;

public class TestAD {

    public static void main(String[] args) throws  NamingException{
        Hashtable<String, String> ldapEnv = new Hashtable<String, String>(11);
        ldapEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        ldapEnv.put(Context.PROVIDER_URL,  "ldap://mysite.ru:389");
        ldapEnv.put(Context.SECURITY_AUTHENTICATION, "simple");
        ldapEnv.put(Context.SECURITY_PRINCIPAL, "тут был логин");
        ldapEnv.put(Context.SECURITY_CREDENTIALS, "тут был пароль");
        InitialDirContext ldapContext = new InitialDirContext(ldapEnv);
        // Create the search controls
        SearchControls searchCtls = new SearchControls();
        // Specify the attributes to return
        String returnedAtts[] = {"sAMAccountName", "extensionAttribute1"};
        searchCtls.setReturningAttributes(returnedAtts);
        // Specify the search scope
        searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
        // specify the LDAP search filter
        String searchFilter = "(&(sAMAccountName=n_dunda)(objectclass=user))";
        // Specify the Base for the search
        String searchBase = "OU=Группа компаний Холидей,DC=hclass,DC=ru";
        // Search for objects using the filter
        NamingEnumeration<javax.naming.directory.SearchResult> answer = ldapContext.search(searchBase, searchFilter, searchCtls);
        // Loop through the search results
        while (answer.hasMoreElements()) {
            javax.naming.directory.SearchResult sr = answer.next();
            totalResults++;
            System.out.println(">>>" + sr.getAttributes());

        }
    }
}