📄 test2.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 + -