Подтвердить что ты не робот

Spring Регистрация, создание и управление учетной записью пользователя

Я изучал использование Spring Безопасность для аутентификации/авторизации моего веб-приложения (это будет основано на JDBC).

Однако основной компонент, похоже, не учитывается с моей точки зрения. Как зарегистрировать/создать новых пользователей? Для этого существует API-интерфейс?

Мне нужно написать регистрацию и управление пользователями с нуля? Вещи, которые мне нужно сделать, включают: - Регистрация нового пользователя - Сброс паролей - Отправка электронной почты пользователю для активации своей учетной записи - Отправка электронной почты пользователю reset их учетной записи.

Спасибо заранее.

4b9b3361

Ответ 1

Я использую Spring Безопасность в моем проекте. У рамки нет API для создания или регистрации пользователя по вашему запросу. Для Spring Безопасность должна быть общей и полезной для нескольких фреймворков, она может занять вас до того, как вам придется писать собственный код. Вы не можете получить более конкретный ответ о структуре или инструменте, потому что на данный момент вы просто будете использовать фреймворки, которые вы уже используете.

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

Если вы действительно хотите увидеть один из способов сделать это: я использую Spring MVC, JSP и Hibernate. Я использую теги формы Spring в JSP для привязки новой пользовательской формы к объекту Person, а мой метод контроллера передает этот объект Person моему Dao для его сохранения.

Подпись метода контроллера выглядит так:

@RequestMapping(value = "/newUser", method = RequestMethod.POST)
public ModelAndView createNewUser(final @Valid @ModelAttribute Person user,
                                  final BindingResult result,
                                  final SessionStatus status,
                                  final @RequestParam(value = "unencodedPassword", required = true) String password) {
        ...
        user.getRoles().add(new Role(user, Role.APPLICATION_ROLE.ROLE_USER));
        userDao.createNewUser(user);
        ...
}

и мой PersonDao будет использовать Hibernate для сохранения пользователя таким образом

@Transactional
public void createNewUser(Person user)
{
    Session session = sessionFactory.getCurrentSession();
    session.save(user);
    session.flush();
}

Ответ 2

Насколько я знаю, Spring Безопасность не имеет встроенной поддержки для создания и регистрации новых пользователей. Вам придется управлять этим самостоятельно. Однако у него есть поддержка по электронной почте. Подробнее о здесь.

Ответ 3

Посмотрите на мой ответ здесь.

"Я реализовал проект JAVA для этого варианта использования. Он открыт источник на основе Spring -Security. Релиз версии включен Maven-Central, поэтому вам не нужно его компилировать, но вместо этого вы можете выберите его как зависимость от вашего проекта!"

<dependency>
     <groupId>com.ohadr</groupId>
     <artifactId>authentication-flows</artifactId>
     <version>1.5.0-RELEASE</version> 
</dependency>