关于LDAP问题

tonyliuchenjun 2010-09-21 04:49:42
我在LDAP查询的时候,总是需要加通配符才能查到,不知道为什么? 请帮我。谢谢

例如:
public static String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory"; //驱动
public static String MY_HOST = "ldap://localhost:389"; //主机地址和端口
public static String MY_SEARCHBASE = "o=airius.com"; //基点入口
public static String MY_FILTER = "(mail=west)"; //过滤条件
public static String MGR_DN="uid=admin,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot"; //用户名
public static String MGR_PW="1"; //密码
public static String MY_ATTRS[] = {/*"cn","userpassword","mail",*/"cn"};
//StringBuffer res = new StringBuffer(); //用来输入名字,IP地址的对象
public static String temp = new String();


Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,INITCTX);
env.put(Context.PROVIDER_URL,MY_HOST);
env.put(Context.SECURITY_AUTHENTICATION,"simple"); //使用简单认证来认证用户
env.put(Context.SECURITY_PRINCIPAL,MGR_DN);
env.put(Context.SECURITY_CREDENTIALS,MGR_PW);
DirContext ctx = new InitialDirContext(env);

//设置查询范围并开始查询
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration results = ctx.search(MY_SEARCHBASE,MY_FILTER,constraints);


在public static String MY_FILTER = "(mail=west)"; 中是查不到的,
只有 public static String MY_FILTER = "(mail=west*)"; 这样写才能查到(加了通配符)。不知道是问什么?

...全文
91 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧