Этот проект — REST API сервис на Spring Boot с JWT аутентификацией. Реализованы регистрация пользователей и логин с выдачей JWT. Пользователи имеют три роли со строгой иерархией с разграничением доступа:
- Пользователь — может предлагать посты.
- Модератор — может публиковать посты и просматривать посты на рассмотрении.
- Администратор — может повышать пользователей до модераторов и просматривать всех пользователей.
- Регистрация пользователей
- Логин с генерацией JWT
- Валидация данных пользователя (формат логина, сложность пароля)
- Роли с разграничением доступа
- Управление ролями администраторами
- Управление постами модераторами
- Тестирование основных сервисов и функционала
- Java 17
- Spring Boot
- Spring Security
- JPA / Hibernate
- Postgres
- JUnit / Mockito для тестирования
- Клонируйте репозиторий
- Настройте
application.properties
(конфигурация БД, JWT-секрет и т.д.) - Запустите команду
mvnw spring-boot:run
- Используйте Postman или другой клиент для тестирования API
- Регистрация:
POST /auth/register
- Логин:
POST /auth/login
- Получение списка постов:
GET /posts
- Создание поста (пользователь):
POST /posts/suggest
- Получение списка постов на рассмотрении (модератор):
GET /posts/pending
- Публикация поста (модератор):
PATCH /posts/publish/{postId}
- Повышение пользователя (админ):
PATCH /admin/promote/{userId}
- Получение списка пользователей (админ):
GET /admin/users
Проект покрыт юнит и интеграционными тестами для основных компонентов и сервисов.