hit-server-manager/backend/README.md

1.4 KiB

Backend - Servers Manager

API REST em Spring Boot 4 (Java 21) com autenticação JWT stateless e refresh token em cookie HttpOnly.

Stack

  • Spring Boot 4.0 (Web MVC, Validation, Data JPA)
  • Spring Security (JWT, stateless)
  • MapStruct 1.6, Lombok
  • PostgreSQL (padrão) ou H2
  • JJWT 0.12 para geração/validação de tokens

Configuração

Variáveis principais:

  • DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWD — Postgres
  • JWT_SECRET — chave HMAC >= 32 chars
  • security.jwt.access-token-expiration — padrão 30m
  • security.jwt.refresh-token-expiration — padrão 30d

Arquivo src/main/resources/application.yaml já traz defaults; adicione um .env ou exporte variáveis conforme o ambiente.

Seed: src/main/resources/data.sql cria usuário padrão default@hittelco.com (senha senha123, bcrypt).

Endpoints chave

  • POST /api/auth/login — autentica e devolve access_token (cookie) + refresh_token (HttpOnly).
  • POST /api/auth/refresh — reemite cookies a partir do refresh.
  • POST /api/auth/signup — cria usuário (requer auth).
  • CRUD /api/users e /api/servers protegidos.

Rodar local

./gradlew bootRun

API em http://localhost:8080 com CORS liberado para http://localhost:5173.

Testes

./gradlew test

Postman

Use postman_collection.json na raiz; o login grava cookies e variáveis access_token/refresh_token.