fix: LDAP FetchUsers Filter ohne Klammern erzeugt Compile Error

UserFilter wie 'uid=%s' wurde zu 'uid=*' — kein gültiger LDAP-Filter.
Fix: Klammern ergänzen wenn der Filter nicht mit '(' beginnt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sysops
2026-03-20 13:38:19 +01:00
parent a6a66beaa8
commit 0b435d8d1a
+5 -1
View File
@@ -204,8 +204,12 @@ func FetchUsers(cfg Config) ([]LDAPUser, error) {
if filter == "" { if filter == "" {
filter = "(|(objectClass=person)(objectClass=user)(objectClass=inetOrgPerson))" filter = "(|(objectClass=person)(objectClass=user)(objectClass=inetOrgPerson))"
} else { } else {
// If the UserFilter is a login filter like (uid=%s), make it a wildcard search. // Convert login filter (e.g. uid=%s or (uid=%s)) to a wildcard search.
filter = strings.ReplaceAll(filter, "%s", "*") filter = strings.ReplaceAll(filter, "%s", "*")
// Wrap in parentheses if missing — e.g. "uid=*" → "(uid=*)"
if !strings.HasPrefix(filter, "(") {
filter = "(" + filter + ")"
}
} }
req := ldapv3.NewSearchRequest( req := ldapv3.NewSearchRequest(