search method

  1. @override
Future<SearchResult> search(
  1. String baseDN,
  2. Filter filter,
  3. List<String> attributes,
  4. {int scope = SearchScope.SUB_LEVEL,
  5. int sizeLimit = 0,
  6. List<Control> controls = const <Control>[]}
)
override

Performs an LDAP search operation.

Searches for LDAP entries, starting at the baseDN, specified by the search filter, and obtains the listed attributes.

The scope of the search defaults to SUB_LEVEL (i.e. search at base DN and all objects below it) if it is not provided.

The sizeLimit defaults to 0 (i.e. no limit).

An optional list of controls can also be provided.

Example:

    var base = 'dc=example,dc=com';
    var filter = Filter.present('objectClass');
    var attrs = ['dc', 'objectClass'];

    var sr = await connection.search(base, filter, attrs);
    await for (var entry in sr.stream) {
      // process the entry (SearchEntry)
      // entry.dn = distinguished name (String)
      // entry.attributes = attributes returned (Map<String,Attribute>)
    }

Implementation

@override
Future<SearchResult> search(
    String baseDN, Filter filter, List<String> attributes,
    {int scope = SearchScope.SUB_LEVEL,
    int sizeLimit = 0,
    List<Control> controls = const <Control>[]}) async {
  loggerConnection.fine('search');

  return _cmgr.processSearch(
      SearchRequest(baseDN, filter, attributes, scope, sizeLimit), controls);
}