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

Создать учетную запись, Забыли пароль и сменить пароль

Spring Безопасность отличная, когда разработчик хочет защитить свое веб-приложение.

Однако как насчет создания учетной записи? и "забыли пароль"? большинство страниц входа имеют эти ссылки, а также поля имени пользователя и пароля. Spring default login-page не имеет этих ссылок... в хорошем случае он может поддерживать "запомнить меня"...

Поддерживает ли Spring эти потоки, создавать учетную запись, забывать пароль и сменить пароль? Если да, можете ли вы указать мне некоторые документы?

Я искал эту проблему, но ничего не мог найти.

Спасибо!

4b9b3361

Ответ 1

Вы совершенно правы. AFAIK нет "универсального" пакета, который реализует эти потоки. Я давно искал этот код, и ничего не нашел. Я думаю, что @luizcarlosfx прав, что каждое приложение имеет свои собственные потребности, поэтому сложно написать что-то общее, которое соответствует всем потребностям.


EDIT: Я видел такие комментарии, как "Это не так сложно реализовать". Правда. Но вы должны быть уверены, что позаботитесь обо всех случаях. Например, что произойдет, если пользователь попытается создать учетную запись, которая уже существует? что произойдет, если пользователь попытается создать учетную запись, которая уже существует, но неактивна? как насчет политики пароля? (слишком длинный/слишком короткий/сколько капитала и т.д.), что бы отправить по электронной почте ссылку активации пользователю? как создать эту ссылку? как вы его зашифруете? как насчет контроллера, который получит клик по ссылке и активирует учетную запись? и все больше и больше...


Однако, я сделал шаг вперед и попытался закодировать что-то, что будет отвечать большинству потоков - регистрация, забыли пароль, сменить пароль и т.д. и что-то, что будет достаточно обеспечено, чтобы приложения были способный использовать его без опасения, что его легко взломать.

Я реализовал проект JAVA для этого случая использования. Это открытый исходный код, основанный на Spring -Security. Версия выпуска находится на Maven-Central, поэтому вам не нужно ее компилировать, но вместо этого вы можете получить ее как зависимость от maven в своем проекте!

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

Я думаю, что он отвечает на ваш вопрос...

Есть объяснения обо всем (и если что-то не хватает - дайте мне знать...)

Вы можете найти здесь пример кода клиентского приложения (например, использование).

Это главная страница проекта плюс демонстрация, а еще одна демонстрация здесь (но это приложение, которое после обновления до версии 1.6.1 требует входа с электронной почтой с "хорошим" доменом - nice.com, поэтому вы не можете использовать его для демонстрации, используйте первый пример). Это клиентское веб-приложение, использующее auth-потоки, с README со всеми пояснениями.

Надеюсь, что это поможет!

Ответ 2

Я думаю, appfuse - это инструмент для того, что вы хотите. Это строки из документации:

AppFuse выходит из строя с функциями, которые необходимы многим приложениям, включая:

  • Аутентификация и авторизация
  • Управление пользователями
  • Запомнить меня (который сохраняет вашу регистрационную информацию, чтобы вы не приходится регистрироваться каждый раз)
  • Напоминание пароля
  • Регистрация и регистрация
  • Переключение SSL
  • E-mail
  • URL-адреса без расширения. Загрузка файла.
  • Общий CRUD-сервер
  • Поддержка полного Eclipse, IDEA и NetBeans.
  • Быстрый запуск и развертывание без плагина Maven Jetty
  • Тестирование на нескольких серверах приложений и в базах данных с грузом и профилями