private Map<LdapEntry, LdapPasswordManagementProperties> findEntries(final List<String> filterValues) {
        val results = new LinkedHashMap<LdapEntry, LdapPasswordManagementProperties>(0);
        casProperties.getAuthn().getPm().getLdap()
            .stream()
            .sorted(Comparator.comparing(LdapPasswordManagementProperties::getName))
            .forEach(Unchecked.consumer(ldap -> {
                val filter = LdapUtils.newLdaptiveSearchFilter(ldap.getSearchFilter(),
                    LdapUtils.LDAP_SEARCH_FILTER_DEFAULT_PARAM_NAME, filterValues);
                LOGGER.debug("Constructed LDAP filter [{}]", filter);
                val ldapConnectionFactory = new LdapConnectionFactory(connectionFactoryMap.get(ldap.getLdapUrl()));
                val response = ldapConnectionFactory.executeSearchOperation(ldap.getBaseDn(), filter, ldap.getPageSize());
                LOGGER.debug("LDAP response [{}]", response);
                if (LdapUtils.containsResultEntry(response)) {
                    results.put(response.getEntry(), ldap);
                }
            }));
        return results;
    }
Perform LDAP search by username, returning the requested attribute.

@param context         the context
@param attributeNames  name of the attribute
@param ldapFilterParam the ldap filter param
@return String value of attribute; null if user/attribute not present
support/cas-server-support-pm-ldap/src/main/java/org/apereo/cas/pm/LdapPasswordManagementService.java