Сначала моя конечная точка регистрации просто принимала массив ролей в DTO. Но я пришел к выводу, что это плохая идея.
Затем я подумал о вставке этого в Liquibase YAML. Но в самом приложении (BCrypt) есть функция хеширования паролей, поэтому я не представляю, как ее можно воспроизвести в YAML. Если только я не получу хэш внешними средствами (в Интернете доступны веб-сервисы BCrypt) и просто жестко закодирую его в YAML. Но все равно мне пришлось бы вручную вставлять в таблицу соединения ролей пользователя (
Код: Выделить всё
roleТеоретически я мог бы прослушать какое-нибудь событие Spring (например, ApplicationReadyEvent) и вставить туда обе роли и корневого администратора (сначала убедившись, что они еще не существуют). Или включите его в CommandLineRunner. Другими словами, интегрируйте его в некоторую логику запуска Spring. Имя пользователя и пароль администратора могут храниться в файле свойств.
В любом случае, какой, на ваш взгляд, правильный путь? Вам не обязательно выбирать один из моих подходов.
Это не обязательно должна быть «лучшая практика», если она разумна. Это проект для подачи заявления о приеме на работу (а не Google или другая компания, занимающаяся модными штанами).