2023年6月21日发(作者:)
命令方式对查询进行排序
D:utrustsysteminstalledOpenLDAP>ldapsearch -x -h localhost -D "uid=admin,ou=p
erson,ou=utrust,dc=chinautrust,dc=com" -b "ou=person,ou=utrust,dc=chinautrust,dc
=com" -w "admin" -S "uidaleph"
LDAP分页和排序(JDK自带)
tualListViewControl;
import ption;
import ble;
import t;
import Enumeration;
import Exception;
import Controls;
import Result;
import l;
import trols;
import lLdapContext;
import ntext;
import ntrol;
public class SortLDAP {
public static void main(String[] args) throws NamingException, IOException {
Hashtable m_env = new Hashtable(5, );
m_(L_CONTEXT_FACTORY,
"xFactory");
//m_("n", "3");
m_(ER_URL, "ldap://192.168.0.111:389");
m_(TY_AUTHENTICATION, "simple");
m_(TY_PRINCIPAL, "cn=Directory Manager");
m_(TY_CREDENTIALS, "password12345");
// Open an LDAP association
LdapContext ctx = new InitialLdapContext(m_env, null); // Activate sorting
String sortKey = "uid";
int beforeCount = 0;
int afterCount = 0;
int nTargetOffset = 0;
int nPageSize = 5;
VirtualListViewControl vctl = new VirtualListViewControl(nTargetOffset, beforeCount,
afterCount, nPageSize, AL);
uestControls(new Control[]{new SortControl(sortKey,
AL),vctl});
String[] retAtt = {"uid"};
SearchControls constraints = new SearchControls();
rchScope(E_SCOPE);
urningAttributes(retAtt);
// uestControls(new Control[]{new PagedResultsControl(2)});
// Perform a search
NamingEnumeration results =
("ou=person,ou=utrust,dc=chinautrust,dc=com", "(objectclass=*)",
constraints);
// Iterate over search results
while (results != null && e()) {
// Display an entry
SearchResult entry = (SearchResult) ();
n(ributes());
// Handle the entry's response controls (if any)
if (entry instanceof HasControls) {
// ((HasControls)entry).getControls();
}
}
// Close the LDAP association
();
}
}
LDAP数据排序(netscape包)
import mpareAttrNames;
import nnection;
import try;
import ception;
import ferralException;
import archResults;
import tionPool;
public class LdapUtils {
private static final String HOST = "localhost";
private static final int PORT = 389;
private static final int MIN_CONN_SIZE = 1;
private static final int MAX_CONN_SIZE = 5;
private static final String USER_ID = "cn=Manager,dc=chinautrust,dc=com";
private static final String PASSWORD = "password12345";
private static ConnectionPool connPool;
static {
try {
connPool = new ConnectionPool(MIN_CONN_SIZE, MAX_CONN_SIZE, HOST,
PORT);
} catch (LDAPException e) {
String message = "Failed to init Ldap connection pool";
n(message);
}
}
public static ConnectionPool getConnectionPool() {
return ol;
}
public static LDAPConnection getConnection() {
LDAPConnection conn = nectionPool().getConnection();
try {
ticate(USER_ID, PASSWORD);
} catch (LDAPException e) {
String message = "Failed to authen the system ldap user";
n(message); }
return conn;
}
public static void closeConnection(LDAPConnection conn) {
nectionPool().close(conn);
}
public static void main(String[] args) throws Exception{
LDAPConnection con = nection();
String[] ATTRS = {"uidaleph"};
LDAPSearchResults res =
("ou=person,ou=utrust,dc=chinautrust,dc=com",_SUB,"uid=*",ATTRS,false);
LDAPCompareAttrNames compareAttrNames = new
LDAPCompareAttrNames("uidaleph", true);
(compareAttrNames);
while (eElements()) {
try {
// Next directory entry
LDAPEntry entry = ();
n(entry);
} catch (LDAPReferralException e) {
// Ignore referrals
continue;
} catch (LDAPException e) {
n(ng());
continue;
}
}
n("-----------------------");
}
}
总结
1、PagedResultsControl分页处理 即uestControls(new Control[]{new SortControl(sortKey, AL),new
PagedResultsControl(2, AL) });语句
Windows活动目录支持分页查询control。Sun Java目录服务器 v5.2不支持。
VirtualListViewControl分页查询control Sun Java目录服务器支持。
2、JDK自带排序control。
Sun Java目录服务器和Windows活动目录都支持排序control。OpenLDAP和Domino不支持。
2023年6月21日发(作者:)
命令方式对查询进行排序
D:utrustsysteminstalledOpenLDAP>ldapsearch -x -h localhost -D "uid=admin,ou=p
erson,ou=utrust,dc=chinautrust,dc=com" -b "ou=person,ou=utrust,dc=chinautrust,dc
=com" -w "admin" -S "uidaleph"
LDAP分页和排序(JDK自带)
tualListViewControl;
import ption;
import ble;
import t;
import Enumeration;
import Exception;
import Controls;
import Result;
import l;
import trols;
import lLdapContext;
import ntext;
import ntrol;
public class SortLDAP {
public static void main(String[] args) throws NamingException, IOException {
Hashtable m_env = new Hashtable(5, );
m_(L_CONTEXT_FACTORY,
"xFactory");
//m_("n", "3");
m_(ER_URL, "ldap://192.168.0.111:389");
m_(TY_AUTHENTICATION, "simple");
m_(TY_PRINCIPAL, "cn=Directory Manager");
m_(TY_CREDENTIALS, "password12345");
// Open an LDAP association
LdapContext ctx = new InitialLdapContext(m_env, null); // Activate sorting
String sortKey = "uid";
int beforeCount = 0;
int afterCount = 0;
int nTargetOffset = 0;
int nPageSize = 5;
VirtualListViewControl vctl = new VirtualListViewControl(nTargetOffset, beforeCount,
afterCount, nPageSize, AL);
uestControls(new Control[]{new SortControl(sortKey,
AL),vctl});
String[] retAtt = {"uid"};
SearchControls constraints = new SearchControls();
rchScope(E_SCOPE);
urningAttributes(retAtt);
// uestControls(new Control[]{new PagedResultsControl(2)});
// Perform a search
NamingEnumeration results =
("ou=person,ou=utrust,dc=chinautrust,dc=com", "(objectclass=*)",
constraints);
// Iterate over search results
while (results != null && e()) {
// Display an entry
SearchResult entry = (SearchResult) ();
n(ributes());
// Handle the entry's response controls (if any)
if (entry instanceof HasControls) {
// ((HasControls)entry).getControls();
}
}
// Close the LDAP association
();
}
}
LDAP数据排序(netscape包)
import mpareAttrNames;
import nnection;
import try;
import ception;
import ferralException;
import archResults;
import tionPool;
public class LdapUtils {
private static final String HOST = "localhost";
private static final int PORT = 389;
private static final int MIN_CONN_SIZE = 1;
private static final int MAX_CONN_SIZE = 5;
private static final String USER_ID = "cn=Manager,dc=chinautrust,dc=com";
private static final String PASSWORD = "password12345";
private static ConnectionPool connPool;
static {
try {
connPool = new ConnectionPool(MIN_CONN_SIZE, MAX_CONN_SIZE, HOST,
PORT);
} catch (LDAPException e) {
String message = "Failed to init Ldap connection pool";
n(message);
}
}
public static ConnectionPool getConnectionPool() {
return ol;
}
public static LDAPConnection getConnection() {
LDAPConnection conn = nectionPool().getConnection();
try {
ticate(USER_ID, PASSWORD);
} catch (LDAPException e) {
String message = "Failed to authen the system ldap user";
n(message); }
return conn;
}
public static void closeConnection(LDAPConnection conn) {
nectionPool().close(conn);
}
public static void main(String[] args) throws Exception{
LDAPConnection con = nection();
String[] ATTRS = {"uidaleph"};
LDAPSearchResults res =
("ou=person,ou=utrust,dc=chinautrust,dc=com",_SUB,"uid=*",ATTRS,false);
LDAPCompareAttrNames compareAttrNames = new
LDAPCompareAttrNames("uidaleph", true);
(compareAttrNames);
while (eElements()) {
try {
// Next directory entry
LDAPEntry entry = ();
n(entry);
} catch (LDAPReferralException e) {
// Ignore referrals
continue;
} catch (LDAPException e) {
n(ng());
continue;
}
}
n("-----------------------");
}
}
总结
1、PagedResultsControl分页处理 即uestControls(new Control[]{new SortControl(sortKey, AL),new
PagedResultsControl(2, AL) });语句
Windows活动目录支持分页查询control。Sun Java目录服务器 v5.2不支持。
VirtualListViewControl分页查询control Sun Java目录服务器支持。
2、JDK自带排序control。
Sun Java目录服务器和Windows活动目录都支持排序control。OpenLDAP和Domino不支持。
发布评论