- String searchBase = baseDn;
- NamingEnumeration<SearchResult> results = initialLdapContext
- .search(searchBase, searchFilter, searchControls);
-
- SearchResult searchResult = null;
- if (results.hasMoreElements()) {
- searchResult = (SearchResult) results.nextElement();
- if (results.hasMoreElements())
- searchResult = null;
- }
- if (searchResult == null)
- return null;
- return new LdifUser(this, toDn(searchBase, searchResult),
- searchResult.getAttributes());
- } catch (Exception e) {
- throw new UserDirectoryException("Cannot get user with " + key
- + "=" + value, e);
- }
- }
-
- private LdapName toDn(String baseDn, Binding binding)
- throws InvalidNameException {
- return new LdapName(binding.isRelative() ? binding.getName() + ","
- + baseDn : binding.getName());
- }
-
- // void populateDirectMemberOf(LdifUser user) {
- //
- // try {
- // String searchFilter = "(&(objectClass=groupOfNames)(member="
- // + user.getName() + "))";
- //
- // SearchControls searchControls = new SearchControls();
- // searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
- //
- // String searchBase = "ou=node";
- // NamingEnumeration<SearchResult> results = initialLdapContext
- // .search(searchBase, searchFilter, searchControls);
- //
- // // TODO synchro
- // //user.directMemberOf.clear();
- // while (results.hasMoreElements()) {
- // SearchResult searchResult = (SearchResult) results
- // .nextElement();
- // LdifGroup group = new LdifGroup(toDn(searchBase, searchResult),
- // searchResult.getAttributes());
- // populateDirectMemberOf(group);
- // //user.directMemberOf.add(group);
- // }
- // } catch (Exception e) {
- // throw new ArgeoException("Cannot populate direct members of "
- // + user, e);
- // }
- // }
-
- @Override
- protected List<DirectoryGroup> getDirectGroups(User user) {
- List<DirectoryGroup> directGroups = new ArrayList<DirectoryGroup>();
- try {
- String searchFilter = "(&(objectClass=groupOfNames)(member="
- + user.getName() + "))";
-
- SearchControls searchControls = new SearchControls();
- searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
-
- String searchBase = getGroupsSearchBase();
- NamingEnumeration<SearchResult> results = initialLdapContext
- .search(searchBase, searchFilter, searchControls);