diff --git a/ldap/server.go b/ldap/server.go index 2a6483ca..3c88e54d 100644 --- a/ldap/server.go +++ b/ldap/server.go @@ -149,10 +149,6 @@ func handleSearch(w ldap.ResponseWriter, m *ldap.Message) { } r := m.GetSearchRequest() - if r.FilterString() == "(objectClass=*)" { - w.Write(res) - return - } // Handle Stop Signal (server stop / client disconnected / Abandoned request....) select { diff --git a/ldap/util.go b/ldap/util.go index 78ddcbc4..1bcd0fc7 100644 --- a/ldap/util.go +++ b/ldap/util.go @@ -200,6 +200,9 @@ func buildUserFilterCondition(filter interface{}) (builder.Cond, error) { } return builder.Eq{field: string(f.AssertionValue())}, nil case message.FilterPresent: + if strings.EqualFold(string(f), "objectclass") { + return builder.Expr("1 = 1"), nil + } field, err := getUserFieldFromAttribute(string(f)) if err != nil { return nil, err