Skip to content

sergeywhite86/Bank-rest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Система управления банковскими картами (API)

Возможности

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

  • Аутентификация на основе JWT

  • Контроль доступа по ролям: ADMIN, USER

  • Шифрование данных

👨‍💼 Функционал администратора

  • Создание, активация, блокировка и удаление карт

  • Управление пользователями

  • Просмотр всех карт в системе

👤 Функционал пользователя

  • Просмотр своих карт (с пагинацией и фильтрацией)

  • Запрос на блокировку карты

  • Перевод средств между своими картами

  • Просмотр общего баланса

💾 База данных

  • PostgreSQL

  • Управление через миграции Liquibase

🔧 Технологический стек

  • Java 17+

  • Spring Boot

  • Spring Security

  • Spring Data JPA

  • PostgreSQL

  • Liquibase

  • JWT

  • Swagger / OpenAPI

  • Docker / Docker Compose

  • JUnit + Mockito

🐳 Настройка локальной среды разработки

✅ Требования

  • Java 17+

  • Docker & Docker Compose

  • Maven

Запукс приложения

⚙️ 1. Клонирование репозитория

bash
git clone https://github.com/sergeywhite86/Bank-rest

⚙️ 2. Настройка переменных окружения

Создайте файл .env в корне проекта и задайте необходимые переменные:

POSTGRES_DB=bank_db
POSTGRES_USER=admin
POSTGRES_PASSWORD=admin
JWT_SECRET=your_jwt_secret_key
ENCRYPTION_SECRET=your_secret

В корне проекта уже есть файл .env, можете задать свои значения(создан для удобства запуска)

⚙️ 3. Сборка проекта

Введите команду

mvn clean package

⚙️ 4. Запуск приложения через Docker Compose

docker-compose up --build

Команда запустит Spring Boot приложение и базу данных PostgreSQL с заданными настройками.

🛡 Аутентификация

  • Получение JWT токена

  • Используйте эндпоинт /auth/login для аутентификации:

POST http://localhost:8080/auth/login

Тело запроса:

json
{
"username": "admin",
"password": "admin"
}

Авторизация API запросов

  • Добавляйте токен в заголовок Authorization для защищенных эндпоинтов

🔐 Особенности безопасности

Ролевая аутентификация через JWT

  • Контроль доступа на уровне маршрутов и методов

  • Хеширование паролей через BCrypt

  • Шифрование номеров карт с AES и маскирование (например, **** **** **** 1234)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors