zoukankan      html  css  js  c++  java
  • Java使用LdAP获取AD域用户

    /**
     * @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域账户*/
    public class LdAPTest {
        public static void main(String[] args) {
            Properties env = new Properties();
            String adminName = "administrator@2003.com";//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);
            }
        }
    }
  • 相关阅读:
    系统CLOCK 频率 C代码查看范例
    LINUX C 文件读写范例
    linux 打印机 打印机支持工作组 openprinting
    问题记录
    初步了解profile文件
    内核中的HZ 及延迟等
    LINUX_System_Call_Quick_Reference
    Linux基础篇 六 (bash shell基础 (vi /etc/shells))
    Android调用平台功能具体技巧分享
    男人35岁前要做好的几件事
  • 原文地址:https://www.cnblogs.com/azhqiang/p/4250213.html
Copyright © 2011-2022 走看看