2.1 KiB
2.1 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— PostgresJWT_SECRET— chave HMAC >= 32 charssecurity.jwt.access-token-expiration— padrão 30msecurity.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 devolveaccess_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/userse/api/serversprotegidos.
Rodar local
./gradlew bootRun
API em http://localhost:8080 com CORS liberado para http://localhost:5173.
Documentação OpenAPI
- Dependência
springdoc-openapihabilita/swagger-ui.html(UI) e/v3/api-docs(JSON). - Endpoints agora trazem
@Operatione@ApiResponses, facilitando entendimento e testes. - Para testar rotas protegidas via Swagger UI, execute
/api/auth/loginpela própria interface; os cookies emitidos serão armazenados no navegador e enviados nas requisições seguintes.
Formatação com Spotless
O projeto usa Spotless para padronizar o código Java (imports, formatação Google Java Format).
Comandos úteis:
./gradlew spotlessCheck # valida formatação (executado em pipelines via 'check')
./gradlew spotlessApply # ajusta os arquivos automaticamente
Testes
./gradlew test
Postman
Use postman_collection.json na raiz; o login grava cookies e variáveis access_token/refresh_token.