Рассматриваю сейчас пример "Регистрация, вход через спринг" https://hellokoding.com/registration-and-login-example-with-spring-xml-configuration-maven-jsp-and-mysql/
При регистрации нового пользователя, после нажатия кнопки Submit, срабатывает метод, который берет в базе ВСЕ существующие ROLE (сейчас у меня созданы ROLE_USER и ROLE_ADMIN) и добавляет их пользователю автоматически.
Вопрос: Не могу понять, как отправить в метод только ROLE_USER, что бы автоматически пользователь создавался именно с ним, а ROLE_ADMIN, добавлялся вручную.
Вот гит пример: https://github.com/hellokoding/registration-login-spring-xml-maven-jsp-mysql
Вот метод, который отвечает за сохранение нового пользователя. https://github.com/hellokoding/registration-login-spring-xml-maven-jsp-mysql/blob/master/src/main/java/com/hellokoding/account/service/UserServiceImpl.java#L24
Пытался, вытащить со списка первое значение, через new HashSet<>(roleRepository.findAll()) и get(0), но не получилось, он требует что бы мы ему дали тип данных "Role", а я что-то не сильно могу понять, как должен выглядеть код.
Буду благодарен, за любую подсказку. Спасибо.
Подозреваю, что вы могли в конструктор HashSet передавать Role, а не их коллекцию. Должно быть как-то так:
Role roleUser = roleRepository.findOne(1L); // если ROLE_USER гарантирована с id=1
// Role roleUser = roleRepository.findOneByName("ROLE_USER"); // альтернативный вариант
Set<Role> roles = new HashSet<>(); // т.к. User.setRoles требует Set
roles.add(roleUser); // создадим Set с одним значением
user.setRoles(roles);
Продвижение своими сайтами как стратегия роста и независимости