Управление пользователями в памяти
Если вы хотите полностью управлять пользователями в 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();
}