LdapTemplate.ktSubclasses implement call() which receives an open DirContext. The template handles:
LdapConnector.createContext(), optionally with username/password for authenticated binds.openConnections counter, incremented on open and decremented on close.NamingEnumeration<SearchResult> and DirContext, catching and logging any close failures.NameNotFoundException returns null (base context not found), while other exceptions wrap in RuntimeException.868d6abb7 2025 -> 2026 63081666f Source file headers: 2024-> 2025. 5f9bbfbd3 Fix typos in projectforge-business directory b6092df09 Copyright 2023 -> 2024 ab45d51fa Copyright 2001-2022 -> 2001-2023. 5f7ef41b8 Copyright 2021 -> 2022 02128a8fb Ldap works