From 0ac69bde533934237ed22087dffdcca7e3c232b3 Mon Sep 17 00:00:00 2001 From: DacongDA Date: Mon, 28 Jul 2025 23:39:04 +0800 Subject: [PATCH] feat: fix objectClass filter will return empty response (#4011) --- ldap/server.go | 4 ---- ldap/util.go | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) 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