JNDI 分页查询 LDAP
来源:互联网 发布:支付宝绑定淘宝 编辑:程序博客网 时间:2024/05/22 06:57
全文: http://blog.163.com/lyq_163_2009/blog/static/13408269620128711347298/
package com.nice.ldap;
import javax.naming.NamingEnumeration;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.ldap.Control;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.SortControl;
import com.sun.jndi.ldap.ctl.VirtualListViewControl;
public class LDAPDao {
private InitialLdapContext context;
public Object execute(JNDIHelper helper) {
Object obj = helper.doInContext(this.context);
return obj;
}
public void searchOne(final int pageNum,final int pageSize,final String baseDN,
final String filter){
this.execute(new JNDIHelper(){
public Object doInContext(InitialLdapContext context) {
SearchControls constraints = new SearchControls();
// SearchControls.ONELEVEL_SCOPE (子目录)
// SearchControls.SUBTREE_SCOPE (子树目录)
constraints.setSearchScope(SearchControls.ONELEVEL_SCOPE);
constraints.setCountLimit(0);
constraints.setTimeLimit(5000);
constraints.setDerefLinkFlag(false);
String[] attrIDs = { "cn", "sn", "objectClass" };
constraints.setReturningAttributes(attrIDs);
try {
VirtualListViewControl vctl = new VirtualListViewControl(
(pageNum-1)*pageSize+1, 0, 0,pageSize-1, Control.CRITICAL);
SortControl sctl = new SortControl(
new String[] { "cn" },Control.CRITICAL);
context.setRequestControls(new Control[] { sctl, vctl });
NamingEnumeration<SearchResult> results = context.search(
baseDN, filter, constraints);
int total = 0;
while (results != null && results.hasMore()) {
total++;
SearchResult result = results.nextElement();
String value = result.getName();
System.out.print(total + " 节点DN: " + value);
Attributes attrs = result.getAttributes();
Attribute ocAttr= attrs.get("objectClass");
for(int i=0;ocAttr!=null && i<ocAttr.size();i++){
System.out.print(" " + ocAttr.get(i));
}
Attribute snAttr= attrs.get("sn");
System.out.println(" sn = " + snAttr.get());
}
System.out.println("查询条数:" + total);
}catch(Exception e){
e.printStackTrace();
}
return null;
}
});
}
public void setContext(InitialLdapContext context) {
this.context = context;
}
}
- JNDI 分页查询 LDAP
- LDAP分页查询
- JNDI & LDAP
- JNDI與LDAP
- JNDI和LDAP(1)
- JNDI和LDAP(2)
- JNDI和LDAP(3)
- JNDI和LDAP学习心得
- Ldap和JNDI
- JNDI 连接 LDAP
- JNDI与LDAP
- [ldap]Ldap查询范例
- java LDAP分页查询 解决1000条限制
- JNDI 介绍和Ldap简介
- JNDI访问LDAP目录服务
- Spring Ldap 分页
- Spring Ldap 分页
- JNDI访问LDAP服务简单应用示例
- 关于Xpath的几点特别用法
- Saliency
- 取得脚本所在路径
- Spring 技术内幕初探 笔记1
- iOS 知识点
- JNDI 分页查询 LDAP
- 右键之删除svn项目信息
- 用jrtplib对媒体数据进行传输
- XML基础语法
- hadoop-1.0.4编译eclipse plugin插件
- tomcat 修改用户名和密码的问题
- a 标签中有js 函数
- 每天工作4小时的程序员
- 使用lwip协议的Raw API工作模式