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

📄 test2.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 Test2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Hashtable env = new Hashtable(11);
		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");
		try {
			DirContext ctx=new InitialDirContext(env);
		
			System.out.println(ctx.lookup("cn=yaoqiang1"));
			System.out.println(ctx.lookupLink("cn=yaoqiang1").getClass().getSimpleName());
			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());
					}
				}
			}
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

⌨️ 快捷键说明

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