Skip to content

tfiamietsh/spring-rest-jwt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring Boot REST API Backend with JWT Auth

Описание

Этот проект — REST API сервис на Spring Boot с JWT аутентификацией. Реализованы регистрация пользователей и логин с выдачей JWT. Пользователи имеют три роли со строгой иерархией с разграничением доступа:

  • Пользователь — может предлагать посты.
  • Модератор — может публиковать посты и просматривать посты на рассмотрении.
  • Администратор — может повышать пользователей до модераторов и просматривать всех пользователей.

Функциональность

  • Регистрация пользователей
  • Логин с генерацией JWT
  • Валидация данных пользователя (формат логина, сложность пароля)
  • Роли с разграничением доступа
  • Управление ролями администраторами
  • Управление постами модераторами
  • Тестирование основных сервисов и функционала

Технологии

  • Java 17
  • Spring Boot
  • Spring Security
  • JPA / Hibernate
  • Postgres
  • JUnit / Mockito для тестирования

Установка и запуск

  1. Клонируйте репозиторий
  2. Настройте application.properties (конфигурация БД, JWT-секрет и т.д.)
  3. Запустите команду mvnw spring-boot:run
  4. Используйте 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

Тестирование

Проект покрыт юнит и интеграционными тестами для основных компонентов и сервисов.