1. 程式人生 > >使用Java訪問LDAP伺服器中的資料資訊

使用Java訪問LDAP伺服器中的資料資訊

{
    
//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();
        }