Skip to content

Latest commit

 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Разработка защищенного REST API с интеграцией в CI/CD

Выполнила: Кузенина Валерия P3432

Описание проекта

Проект представляет собой простой REST API для управления пользователями и постами с использованием Spring Boot, JPA и JWT-аутентификации.

Технологии

  • Spring Boot 3.5
  • Spring Security
  • JWT (io.jsonwebtoken)
  • JPA / Hibernate
  • H2 Database (in-memory)
  • Lombok

Эндпоинты API

1. Регистрация пользователя

URL: POST /auth/register
Тело запроса (JSON):

{
  "username": "test",
  "password": "test",
  "fullName": "Test Example",
  "email": "test@example.com"
}

Описание: Регистрирует нового пользователя и создаёт для него профиль.


2. Логин пользователя

URL: POST /auth/login
Тело запроса (JSON):

{
  "username": "test",
  "password": "test"
}

Ответ: JWT-токен

"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwiaWF0IjoxNzU3ODc3NTE5LCJleHAiOjE3NTc5NjM5MTl9.zl-8mupkjnmRoE_9ALAOWjlxc8jkYfRtI09ROZGC62I"

3. Получение данных профиля

URL: GET /api/data?username=test Ответ:

[
"example post"
]

Описание: Регистрирует нового пользователя и создаёт для него профиль.

4. Создание поста

URL: POST /api/create

Заголовок запроса:

  Authorization: Bearer <JWT-токен>

Тело запроса (JSON):

{
  "content": "Example post content"
}

Описание: Создаёт новый пост текущего пользователя. Только аутентифицированный пользователь может создавать посты для себя.

Реализованные меры защиты

1. Защита от SQL-инъекций

  • Используется Spring Data JPA с параметризованными запросами.
  • Нет конкатенации строк для формирования SQL.

2. Защита от XSS

  • Все пользовательские данные сериализуются в JSON.
  • Spring Boot экранирует специальные символы для безопасного отображения.

3. Аутентификация и авторизация

  • JWT-токены используются для аутентификации пользователей.
  • Middleware проверяет токен на защищённых эндпоинтах.
  • Пароли хранятся в хэшированном виде с помощью BCryptPasswordEncoder.

Как запускать

git clone https://github.com/larentiina/isecurity1.git
.\mvnw spring-boot:run

CI/CD

ci/cd настроен в файле

ссылка на успешно пройденный пайплайн

Отчет SpotBugs: image

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages