RealHelpDesk API
RealHelpDesk API — это REST API для построения системы управления заявками или внутренней системы обработки запросов.
На данный момент реализован MVP (Minimum Viable Product):
- Пользователи могут регистрироваться и авторизовываться.
- Пользователь может создавать порталы — входные точки приёма заявок.
- Внутри портала, пользователями создаются заявки (описывающие проблему или запрос).
- К каждой заявке можно добавлять сообщения.
Авторизация и безопасность
Используются JWT-токены для аутентификации и авторизации пользователей. Каждый входящий запрос проходит через фильтр JwtAuthFilter, который:
- Пропускает открытые эндпоинты (например,
/auth/login) из белого списка. - Извлекает access-токен из заголовка
Authorization: Bearer <token>. - Расшифровывает и проверяет access-токен с помощью
ValidTokenService - Устанавливает аутентификацию в
SecurityContextHolder. - Помечает ошибки токена (истёкший токен, некорректный формат и т.д.) через доп. заголовки.
Структура проекта
- Core - конфигурация, глобальные исключения, фильтры, токены, пользователи.
- Domain - базовые entity, репозитории и сервисы.
- Feature - управление порталами, заявками, сообщениями, авторизацией и т.д.
Запуск проекта
- Задать значение для
jwt.secret-for-gen-jwtвapplication.properties. Это должен бытьHMAC-ключдлиной не менее 256 бит, закодированный вBase64. Получить его можно так:openssl rand -base64 32 - Поднять postgres с помощью
docker-compose.yamlв корне проекта: - Запустить через Maven [spring-boot:run]
Логгирование (logback-spring.xml)
-
/log/realHelpDesk-**.logзапросы -
/log/application-**.logприложение
Тестирование
-
postman_collection.json- Коллекция для импорта в Postman. - После регистрации вручную вставьте полученные
accessTokenиrefreshTokenв переменные окружения(Variables) Postman.