Skip to content

AlenaGavriluk/Spring_security_learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

В этом задании нужно будет доработать Spring Boot приложение реализовав нужный функционал. Шаблон приложения скачайте по ссылке на Github. Для общения с приложением рекомендую воспользоваться Postman'ом чтобы не тратить время на написание фронтенда.

Задание

  1. Реализуйте функционал регистрации. Пользователь должен иметь возможность зарегистрироваться, отправив соответствующий запрос на backend, либо при помощи OAuth2 если его аккаунт не был создан.
  2. Реализуйте функционал refresh-токена: при авторизации пользователя давайте ему 2 ключа с разным временем жизни. Первый - 30 минут (access_token), второй - 30 дней - refresh_token. Создайте эндпоинт, принимающий refresh_token в теле запроса и возвращающий новую пару access и refresh токенов.
  3. Создайте тестовые приложения OAuth2 для Google, Facebook или Github на выбор. Впишите их clientId и secret в настройки приложения. Убедитесь что они работают. Никогда не комитьте clientId и secret в репозиторий, оставьте вместо них плейсхолдеры наподобие {PROVIDER_NAME_CLIENT_ID}. Пришлите clientId и secret настроенного приложения в сообщении к домашке. Не используйте нигде больше эти id и secret, когда понадобится еще раз создать авторизацию OAuth2. Лучше создайте новое приложение или перегенерируйте secret.
  4. Сделайте так, чтобы только владелец отеля или администратор мог изменять описание отеля, а так же удалять его.
  5. Реализуйте возможность сменить пароль.
  6. Реализуйте сброс пароля по типу "Забыл пароль". Флоу должен быть следующим:
    1. Отправляется запрос с почтой пользователя на эндпоинт. Для простоты, отправлять на почту ничего не нужно: в консоль выводится токен, который позже будет использован для сброса пароля.
    2. Запрос с новым паролем и токеном отправляется на сервер, если всё ок - пароль меняется.
  7. Подключите Spring Boot Actuator и дайте к нему доступ только администраторам.

Критерии оценки

  1. Реализован ли функционал.
  2. Насколько корректно распределена логика по слоям приложения (контроллер, сервис, репозиторий).
  3. Правильность именования методов/переменных/классов. Чистота кода. Принцип DRY.

Важно

Вы можете добавлять в сигнатуры эндпоинтов свои аргументы, но не убирайте те, что там уже присутствуют. Так же не меняйте методы (GET, POST, PATCH, etc.) и пути эндпоинтов. Для того чтобы не потеряться в проекте, вы можете навигироваться при помощи todo, оставленных в коде

About

A small project for learning Spring security

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages