⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ldaptest3.java

📁 JAVA调用ldap,这是一个simple的例子 很好地介绍了java是如何调用ldap,从而取出ldap的信息
💻 JAVA
字号:

import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.ldap.LdapContext;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.NamingEnumeration;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import java.util.Enumeration;


public class LdapTest3 {
	
	public static void main(String[] args) {
	
		Hashtable HashEnv = new Hashtable();

	    String LDAP_URL = "ldap://192.168.2.236:389"; 
	    //String adminName = "CN=OAWebUser,CN=Users,DC=Hebmc,DC=com";
	    String adminName = "hotelvm\\Administrator"; 
	    adminName = "CN=Administrator,CN=Users,DC=hotelvm,DC=com"; 
	    String adminPassword = "password.com"; 

	    HashEnv.put(Context.SECURITY_AUTHENTICATION, "simple"); 
	    HashEnv.put(Context.SECURITY_PRINCIPAL, adminName); 
	    HashEnv.put(Context.SECURITY_CREDENTIALS, adminPassword); 
	    HashEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"); 
	    HashEnv.put(Context.PROVIDER_URL, LDAP_URL);

	    try {
	      LdapContext ctx = new InitialLdapContext(HashEnv, null);
	      SearchControls searchCtls = new SearchControls(); //Create the search controls
	      searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE); //Specify the search scope

	      String searchFilter = "objectClass=User"; //specify the LDAP search filter
	      //String searchFilter = "objectClass=organizationalUnit";//specify the LDAP search filter

	      String searchBase = "OU=WorkFlowUser,DC=hotelvm,DC=com"; //Specify the Base for the search
	      int totalResults = 0;
System.out.println("mmmmmmmmmmmm");
	      //Specify the attributes to return
	      //String returnedAtts[] = {"memberOf"};
	      String returnedAtts[] = {
	          "url", "whenChanged", "employeeID", "name", "userPrincipalName",
	          "physicalDeliveryOfficeName", "departmentNumber", "telephoneNumber",
	          "homePhone", "mobile", "department", "sAMAccountName", "whenChanged",
	          "mail"};

	      searchCtls.setReturningAttributes(returnedAtts); 

	      //Search for objects using the filter
	      NamingEnumeration answer = ctx.search(searchBase, searchFilter,searchCtls);

	      while (answer.hasMoreElements()) {
	        SearchResult sr = (SearchResult) answer.next();
	        System.out.println("************************************************");
	        System.out.println(sr.getName());

	        Attributes Attrs = sr.getAttributes();
	        if (Attrs != null) {
	          try {
	            for (NamingEnumeration ne = Attrs.getAll(); ne.hasMore(); ) {
	              Attribute Attr = (Attribute) ne.next();

	              System.out.println("  AttributeID=" + Attr.getID().toString());

	           
	              for (NamingEnumeration e = Attr.getAll(); e.hasMore();totalResults++) {
	                System.out.println("    AttributeValues=" + e.next().toString());
	              }
	              System.out.println("    ---------------");

	             
	              Enumeration values = Attr.getAll();
	              if (values != null) { 
	                while (values.hasMoreElements()) {
	                  System.out.println("    AttributeValues=" + values.nextElement());
	                }
	              }
	              System.out.println("    ---------------");
	            }
	          }
	          catch (NamingException e) {
	            System.err.println("Throw Exception : " + e);
	          }
	        }
	      }
	      System.out.println("Number: " + totalResults);
	      ctx.close();
	    }

	    catch (NamingException e) {
	      e.printStackTrace();
	      System.err.println("Throw Exception :  " + e);
	    }


	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -