Задача [#9255]: Поддержка постраничной выборки результатов из LDAP

Формулировка проблемы: Во многих LDAP-серверах присутствует лимит на количество одновременно выдаваемых по запросу записей. Например, в Microsoft Active Directory по умолчанию он составляет 1000 записей[14]. Этот лимит предохраняет LDAP-сервер от чрезмерной перегрузки. Для того, чтобы можно было получить любое количество записей по запросу, разработан механизм LDAP Control Extension for Simple Paged Results Manipulation[15], который поддерживается большинством LDAPv3-совместимых серверов, в том числе OpenLDAP[16].

Модуль синхронизации пользователей и групп Arta Synergy с каталогом LDAP (ни старый, ни новый[17]) на данный момент не поддерживает этот механизм, ввиду чего обработать количество записей LDAP сверх вышеописанного лимита невозможно.

Решение:

В обоих механизмах синхронизации с LDAP (старом и новом, configuration version=2) необходимо реализовать поддержку возможности постраничной выборки результатов. Для этого в секцию <item><sync/></item> необходимо добавить параметр <page-size/>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <configuration xmlns="http://www.arta.kz/xml/ns/as/ldap-sync"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.arta.kz/xml/ns/as/ldap-sync ldap-sync_2.xsd"
                   version="2">
    <!-- version="2" присутствует в новом механизме синхронизации -->
        <item>
            <!-- ... 
                Другие параметры
                ... -->
            <sync>
                <!-- 
                    Параметр включает постраничную выборку из LDAP
                    и определяет, сколько записей должно быть в одной странице.
                    Если параметр отсутствует 
                    либо значение в нём равно -1 (по умолчанию),
                    постраничная загрузка не используется.
                -->
                <page-size>100</page-size>
                <!-- ... -->
            </sync>
        </item>
    </configuration>

Если на сервере не поддерживается расширение LDAP Control Extension for Simple Paged Results Manipulation[18] или ему подобное[19], то механизм синхронизации должен переключиться на старое поведение, уведомив об этом соответствующим предупреждающим сообщением в логе сервера.