域账号原来是lixi,如何通过程序修改为liqian,其他的属性信息不改变
连接查找过程可能会出现各种问题,这里推荐两篇博客:
ldap查询语法
LDAP的特定错误
public static void search() throws Exception {
LdapContext ctx = connetldap();
// 设置过滤条件
String filter = "(mail=*)";
// 限制要查询的字段内容
String[] attrPersonArray = { "uid", "userPassword", "displayName", "cn", "sn", "mail", "description"};
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
// 设置将被返回的Attribute
searchControls.setReturningAttributes(attrPersonArray);
// 三个参数分别为:
// 上下文;
// 要搜索的属性,如果为空或 null,则返回目标上下文中的所有对象;
// 控制搜索的搜索控件,如果为 null,则使用默认的搜索控件
NamingEnumeration<SearchResult> answer = ctx.search("你的base", filter, searchControls);
// 输出查到的数据
while (answer.hasMore()) {
SearchResult result = answer.next();
NamingEnumeration<? extends Attribute> all = result.getAttributes().getAll();
while (all.hasMore()) {
Attribute attr = all.next();
System.out.println(attr.getID() + "=" + attr.get());
}
System.out.println("============");
}
}