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

📄 lookup.java

📁 myeclipse下编写的jndi开发案例
💻 JAVA
字号:
import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;

public class Lookup {

	/**
	 * @param args
	 * @throws NamingException
	 */
	public static void main(String[] args) throws NamingException {
		Hashtable env = new Hashtable();
		/*
		 * 匿名访问 LDAPv3
		 */
		/*
		 * env.put(Context.INITIAL_CONTEXT_FACTORY,
		 * "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL,
		 * "ldap://localhost:389");
		 */
		/*
		 * 授权用户查询访问 LDAPv3
		 */
		env.put(Context.INITIAL_CONTEXT_FACTORY,
				"com.sun.jndi.ldap.LdapCtxFactory");
		env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=yaoqiangx,c=com");
		env.put(Context.SECURITY_AUTHENTICATION, "simple");
		env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,o=yaoqiangx,c=com");
		env.put(Context.SECURITY_CREDENTIALS, "secret");
		
		DirContext ctx = new InitialDirContext(env);
		SearchControls controls = new SearchControls();// 创建查询控制
		controls.setSearchScope(SearchControls.SUBTREE_SCOPE);// 设置查询范围
		/*
		 * 查询并将结果赋值给NamingEnumeration接口对象,search方法的第二个参数是查询过滤器, *代表该目录下的所有对象。
		 */
		/*
		 * 匿名访问时
		 * NamingEnumeration results = ctx.search("o=yaoqiangx,c=com", "cn=*",controls);
		 */
		    NamingEnumeration results = ctx.search("", "cn=*",controls);//授权用户查询访问时	 
		while (results != null && results.hasMore()) {
			SearchResult sr = (SearchResult) results.next();
			String dn = sr.getNameInNamespace();//若用getName方法则不输出后缀,查询属性时用getName方法
			System.out.println(dn);
			String ss[]={"telephone","sn"};//设置要查询的属性
	        //Attributes attrs=ctx.getAttributes(dn, ss);//显示指定属性查询时
			Attributes attrs = sr.getAttributes();//授权用户查询访问时
			for (NamingEnumeration ne = attrs.getAll(); ne.hasMoreElements();) {
				Attribute att = (Attribute) ne.next();
				String attID = att.getID();
				System.out.println("AttID:" + attID);
				for (NamingEnumeration valna = att.getAll(); valna
						.hasMoreElements();) {
					System.out.println("\t" + valna.nextElement());
				}
			}

		}

	}

}

⌨️ 快捷键说明

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