Управление пользователями в памяти

Если вы хотите полностью управлять пользователями в LDAP, установите следующее свойство:

jmix.ldap.user-details-source = ldap

В этом случае стандартные объекты LdapUserDetails создаются Spring Security после каждой аутентификации и сохраняются в памяти вместо извлечения из базы данных как сущность User. Права пользователей (authorities) получаются в процессе сопоставления ролей, описанном в разделе Получение прав пользователей.

Сценарий, при котором пользователи поддерживаются в приложении, описан в разделе Начало работы с LDAP.

Репозиторий пользователей LDAP

Когда пользователи в основном управляются в LDAP, они могут быть размещены в приложении там, где вам нужно выбрать пользователя. Для этой цели дополнение поставляется с LDAP-реализацией UserRepository. Этот репозиторий пользователей предоставляет доступ к пользователям из LDAP, но он не предоставляет пользователей system или anonymous. Также вам может понадобиться, чтобы пользователи из базы данных также были доступны для поиска.

Чтобы достичь этого, объявите бин CompositeUserRepository, который объединяет все экземпляры UserRepository в приложении, например, LdapUserRepository и DatabaseUserRepository.

Удалите аннотацию @Primary из DatabaseUserRepository, чтобы не конфликтовать с составным репозиторием. Сделайте этот UserRepository основным (primary) в приложении:

@Bean
@Primary
UserRepository userRepository() {
    return new CompositeUserRepository();
}