Сохранение пользователя, Spring Security, ROLE

481
23 декабря 2016, 13:19

Рассматриваю сейчас пример "Регистрация, вход через спринг" 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", а я что-то не сильно могу понять, как должен выглядеть код.

Буду благодарен, за любую подсказку. Спасибо.

Answer 1

Подозреваю, что вы могли в конструктор 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);
READ ALSO
Fragment передача view

Fragment передача view

Имеется много фрагментов, для примера возьму test и test2Вызвал test, в котором имеется ListView, по нажатию на который открывается окно добавления...

295
Не могу верно определить разницу во времени

Не могу верно определить разницу во времени

Нужно расчитать разницу (в днях) между двумя точками во времениНе получается

295
Java: Передача файла с использованием multipart/form-data

Java: Передача файла с использованием multipart/form-data

Объясните пожалуйста что такое multipart/form-data

398
Помогите разобрать строку кода [дубликат]

Помогите разобрать строку кода [дубликат]

На данный вопрос уже ответили:

301