Поиск LDAP для ContextCSN

Tamwyn спросил: 03 февраля 2018 в 11:37 в: go

Добрый вечер, я относительно новичок и попытаюсь написать функцию, экспортирующую переменную contextCSN из каталога openldap (аналогично ldapsearch -x -s base contextCSN). Из документации ldap.v2 я придумал эту :

searchRequest := ldap.NewSearchRequest(
  baseDN, // The base dn to search
  ldap.ScopeBaseObject, ldap.NeverDerefAliases, 0, 0, false,
  "(contextCSN)", // The filter to apply
  []string{"contextCSN"},     // A list attributes to retrieve
  nil,
)

Но он не принимает contextCSN как поисковый запрос

LDAP Result Code 201 "Filter Compile Error": ldap: error parsing filter
exit status 1

Есть ли способ запросить это значение без вызова ldapsearch?

Обновить: после того, как я посмотрел на вывод ldapsearch некоторое время, я придумал это, что решило проблему. Данные немного уродливые, но в остальном обеспечивают то, что мне нужно:

l, err := ldap.DialTLS("tcp", ldapHost, conf)
if err != nil {
    log.Fatal(err)
}
defer l.Close()searchRequest := ldap.NewSearchRequest(
    baseDN, // The base dn to search
    ldap.ScopeBaseObject, ldap.NeverDerefAliases, 0, 0, false,
    "(objectClass=*)",      // The filter to apply
    []string{"contextCSN"}, // A list attributes to retrieve
    nil,
)sr, err := l.Search(searchRequest)
if err != nil {
    log.Fatal(err)
}for _, entry := range sr.Entries {
    for _, csn := range entry.GetAttributeValues("contextCSN") {
        ...
    }
}

0 ответов