apiJWT
Требуется создать БД со следующими таблицами:
- пользователи (id, email, пароль, дата создания);
- клиенты (id, имя, дата создания);
- заказы (id, id клиента, стоимость, дата создания);
Написать API, которое под /data/ выдает данные из таблицы заказов и клиентов (в формате JSON), а под /update/ обновляет данные в таблицах (например обновление имени клиента или смена id клиента, указанного в заказе). Данные операции должны допускаться только авторизованным пользователям. Пользователь считается авторизированным, если он делает HTTP запрос:
- с Bearer токеном (указан на сервере)
- с JWT токеном (назначается клиенту сервером на основе логина+пароля)
Способы авторизации зависят от пути: возможна как и Bearer авторизация, так JWT авторизация для запросов под /update/, /data/.
Ограничения:
- Для авторизации использовать модуль spring security.
- Использовать либо JDBC, либо JPA для запросов (оба содержатся в зависимостях проекта)
- Выход из системы (logout) необходим
- Версия 8 Джавы
Допускается:
- Менять архитектуру проекта любым способом
- Добавлять зависимости в проект
- Создавать дополнительные поля в таблицы БД
Приветствуется:
- Логирование через logback
- Аргументированный подход по созданию архитектуры проекта
- Дополнительные запросы и функционал
- Графический интерфейс (VUE.JS, JFX)
Solution
- auth-service - сервис на котором проходит генерация токена логином и паролем
- gateway - шлюз через который соединяемся с сервисами
- eureka - сервер на котором происходит регистрация сервисов
- manipulation-service - сервис на котором происходит работа с апи через проверку токена
Получаем токен с помощью шлюза на auth-service
Добавляем клиента

Добавляем заказ

Получаем всех клиентов

Получаем все заказы

Измсеняем заказ по id

Изменяем имя клиента по id

Контакты для связи
###Используемые технологии:
- Gradle
- Spring Cloud, Security, Data