Как в Spring Boot прописать дефолтную роль юзеру

Как в Spring Boot прописать дефолтную роль юзеру, при его создании, в случае когда не устанавливаешь роль вручную? Для того чтобы основная масса пользователей автоматически получала роль самого низкого уровня доступа, а также чтобы её не приходилось каждый раз устанавливать, при изменении полей юзера.


Ответы (1 шт):

Автор решения: Anastasiya

При создании бд если вы пишите скрипты вручную пропишите у юзера в таблице role varchar(30) not null default 'ROLE_USER' ;

Если вы используете auto-ddl и jpa над полем Role напишите аннотацию @Column(default=..)

Но все выше это один к одному. Если ваша связь многие ко многим то создайте таблицу ролей, таблицу юзеров, и промежуточную таблицу(в инете полно примеров), тогда процесс регистоации в сервисе будет проходить примерно так:

public User register(UserDto dto) {
User user = new User() ;
user.setUsername(dto.getUsername);
....
Role role = roleRepo.findByName("ROLE_USER");
user.setRoles(Collection.singletonList(role));
return userRepo.save(user);
}

Или попробуйте посмотреть документацию или туториалы на ютуб за более подробной информацией

→ Ссылка