-
Аутентификация на основе 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
bash
git clone https://github.com/sergeywhite86/Bank-rest
Создайте файл .env в корне проекта и задайте необходимые переменные:
POSTGRES_DB=bank_db
POSTGRES_USER=admin
POSTGRES_PASSWORD=admin
JWT_SECRET=your_jwt_secret_key
ENCRYPTION_SECRET=your_secret
В корне проекта уже есть файл .env, можете задать свои значения(создан для удобства запуска)
Введите команду
mvn clean packagedocker-compose up --buildКоманда запустит Spring Boot приложение и базу данных PostgreSQL с заданными настройками.
-
Получение JWT токена
-
Используйте эндпоинт /auth/login для аутентификации:
POST http://localhost:8080/auth/login
Тело запроса:
json
{
"username": "admin",
"password": "admin"
}
- Добавляйте токен в заголовок Authorization для защищенных эндпоинтов
-
Контроль доступа на уровне маршрутов и методов
-
Хеширование паролей через BCrypt
-
Шифрование номеров карт с AES и маскирование (например, **** **** **** 1234)