Example #1
0
  public Collection<LDAPSearchResult> search(final LDAPFilter filter) {
    Assert.notNull(filter, "filter");
    try {
      if ((this.connectOnSearch) && (!this.isConnected())) {
        this.connect();
      }
      Assert.notNull(this.context, "context");
      SearchControls controls = new SearchControls();
      controls.setReturningAttributes(filter.getAttributes());
      controls.setCountLimit(filter.getLimit());
      controls.setTimeLimit(0);
      controls.setSearchScope(SearchControls.SUBTREE_SCOPE);

      NamingEnumeration<SearchResult> results =
          this.context.search(filter.getBaseName(), filter.getFilter(), controls);

      Collection<LDAPSearchResult> c = LDAPHelper.toCollection(results);

      if (this.connectOnSearch) {
        this.disconnect();
      }

      return c;
    } catch (NamingException e) {
      throw new LDAPException(e);
    }
  }