使用Java訪問LDAP伺服器中的資料資訊
阿新 • • 發佈:2019-02-19
{
//Create the initial directory context
LdapContext ctx =new InitialLdapContext(env, null);
//Create the search controls
SearchControls searchCtls =new SearchControls();
//Specify the search scope
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
//specify the LDAP search filter
//String searchFilter = "(&(objectCategory=person)(objectClass=user)(name=004*))";
String searchFilter ="(sn=Brown)";
//Specify the Base for the search
String searchBase ="ou=People,o=MyCorp,dc=example,dc=com";
//initialize counter to total the group members
int totalResults =0;
//Specify the attributes to return
String returnedAtts[] ={"mail"};
searchCtls.setReturningAttributes(returnedAtts);
//Search for objects using the filter
NamingEnumeration answer = ctx.search(searchBase, searchFilter,
searchCtls);
//Loop through the search results
while (answer.hasMoreElements()) {
SearchResult sr = (SearchResult) answer.next();
System.out.println(">>>"+ sr.getName());
//Print out the groups
Attributes attrs = sr.getAttributes();
if (attrs !=null) {
try{
for (NamingEnumeration ae = attrs.getAll(); ae.hasMore(); ) {
Attribute attr = (Attribute) ae.next();
System.out.println("AttributeID: "+ attr.getID());
for (NamingEnumeration e = attr.getAll(); e.hasMore();
totalResults++) {
System.out.println("Attributes:"+e.next());
}
}
}catch (NamingException e) {
e.printStackTrace();
System.err.println("Problem listing membership: "+ e);
}
}
}
System.out.println("Total groups: "+ totalResults);
ctx.close();
}
//Create the initial directory context
LdapContext ctx =new InitialLdapContext(env, null);
//Create the search controls
SearchControls searchCtls =new SearchControls();
//Specify the search scope
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
//specify the LDAP search filter
String searchFilter ="(sn=Brown)";
//Specify the Base for the search
String searchBase ="ou=People,o=MyCorp,dc=example,dc=com";
//initialize counter to total the group members
int totalResults =0;
//Specify the attributes to return
String returnedAtts[] ={"mail"};
searchCtls.setReturningAttributes(returnedAtts);
//Search for objects using the filter
NamingEnumeration answer = ctx.search(searchBase, searchFilter,
searchCtls);
while (answer.hasMoreElements()) {
SearchResult sr = (SearchResult) answer.next();
System.out.println(">>>"+ sr.getName());
//Print out the groups
Attributes attrs = sr.getAttributes();
if (attrs !=null) {
try{
for (NamingEnumeration ae = attrs.getAll(); ae.hasMore(); ) {
Attribute attr = (Attribute) ae.next();
System.out.println("AttributeID: "+ attr.getID());
for (NamingEnumeration e = attr.getAll(); e.hasMore();
totalResults++) {
System.out.println("Attributes:"+e.next());
}
}
}catch (NamingException e) {
e.printStackTrace();
System.err.println("Problem listing membership: "+ e);
}
}
}
System.out.println("Total groups: "+ totalResults);
ctx.close();
}