解决方案 »

  1.   


    SearchControls constraints = new SearchControls();
    constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
    NamingEnumeration<?> en = dirContext.search(root, "cn=" + usr, constraints);//cn改为你的域名应该就行了。
      

  2.   

    我测试的域名是:2003.com,至于域管理员账号和密码的话,你可以先用username/password来代替,能先给我写一个小demo吗?还有那个root变量表示的是啥?
      

  3.   


    /**
     * @Description: 
     *
     * @Title: LdAPTest.java
     * @Package com.joyce.itext.main
     * @Copyright: Copyright (c) 2014
     *
     * @author Comsys-LZP
     * @date 2014-8-7 上午10:20:22
     * @version V2.0
     */
    package com.joyce.itext.main;import java.util.Properties;import javax.naming.Context;
    import javax.naming.NamingEnumeration;
    import javax.naming.NamingException;
    import javax.naming.directory.SearchControls;
    import javax.naming.directory.SearchResult;
    import javax.naming.ldap.InitialLdapContext;
    import javax.naming.ldap.LdapContext;/**
     * @Description:拉取AD域账户
     * 
     * @ClassName: LdAPTest
     * @Copyright: Copyright (c) 2014
     * 
     * @author Comsys-LZP
     * @date 2014-8-7 上午10:20:22
     * @version V2.0
     */
    public class LdAPTest {
    public static void main(String[] args) {
    Properties env = new Properties();
    String adminName = "[email protected]";//username@domain
    String adminPassword = "admin";//password
    String ldapURL = "LDAP://10.10.2.153:389";//ip:port
    env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.SECURITY_AUTHENTICATION, "simple");//"none","simple","strong"
    env.put(Context.SECURITY_PRINCIPAL, adminName);
    env.put(Context.SECURITY_CREDENTIALS, adminPassword);
    env.put(Context.PROVIDER_URL, ldapURL);
    try {
    LdapContext ctx = new InitialLdapContext(env, null);
    SearchControls searchCtls = new SearchControls();
    searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
    String searchFilter = "(&(objectCategory=person)(objectClass=user)(name=*))";
    String searchBase = "DC=2003,DC=com";
    String returnedAtts[] = {"memberOf"};
    searchCtls.setReturningAttributes(returnedAtts);
    NamingEnumeration<SearchResult> answer = ctx.search(searchBase, searchFilter,searchCtls);
    while (answer.hasMoreElements()) {
    SearchResult sr = (SearchResult) answer.next();
    System.out.println("<<<::[" + sr.getName()+"]::>>>>");
    }
    ctx.close();
    }catch (NamingException e) {
    e.printStackTrace();
    System.err.println("Problem searching directory: " + e);
    }
    }
    }还是自己来吧!