Выполнила: Кузенина Валерия P3432
Проект представляет собой простой REST API для управления пользователями и постами с использованием Spring Boot, JPA и JWT-аутентификации.
- Spring Boot 3.5
- Spring Security
- JWT (io.jsonwebtoken)
- JPA / Hibernate
- H2 Database (in-memory)
- Lombok
URL: POST /auth/register
Тело запроса (JSON):
{
"username": "test",
"password": "test",
"fullName": "Test Example",
"email": "test@example.com"
}Описание: Регистрирует нового пользователя и создаёт для него профиль.
URL: POST /auth/login
Тело запроса (JSON):
{
"username": "test",
"password": "test"
}Ответ: JWT-токен
"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwiaWF0IjoxNzU3ODc3NTE5LCJleHAiOjE3NTc5NjM5MTl9.zl-8mupkjnmRoE_9ALAOWjlxc8jkYfRtI09ROZGC62I"URL: GET /api/data?username=test
Ответ:
[
"example post"
]Описание: Регистрирует нового пользователя и создаёт для него профиль.
URL: POST /api/create
Заголовок запроса:
Authorization: Bearer <JWT-токен>Тело запроса (JSON):
{
"content": "Example post content"
}Описание: Создаёт новый пост текущего пользователя. Только аутентифицированный пользователь может создавать посты для себя.
- Используется Spring Data JPA с параметризованными запросами.
- Нет конкатенации строк для формирования SQL.
- Все пользовательские данные сериализуются в JSON.
- Spring Boot экранирует специальные символы для безопасного отображения.
- JWT-токены используются для аутентификации пользователей.
- Middleware проверяет токен на защищённых эндпоинтах.
- Пароли хранятся в хэшированном виде с помощью
BCryptPasswordEncoder.
git clone https://github.com/larentiina/isecurity1.git
.\mvnw spring-boot:runci/cd настроен в файле
ссылка на успешно пройденный пайплайн
