API REST segura para cadastro e autenticação de usuários utilizando:
- Java 17
- Spring Boot 3
- Spring Security
- JWT
- BCrypt
- PostgreSQL
- Spring Data JPA
- Bean Validation
- Cadastro de usuários
- Login com JWT
- Criptografia de senhas com BCrypt
- Controle de acesso por Roles (USER/ADMIN)
- Validação de dados
- Tratamento global de exceções
- API Stateless
src/main/java/com/gui/secureusers
├── config
├── controller
├── dto
├── entity
├── exception
├── repository
├── service
└── SecureUsersApplication.java
mvn clean install
mvn spring-boot:runPOST /api/auth/registerPayload:
{
"name": "John Doe",
"email": "johndoe@email.com",
"password": "Senha@123"
}POST /api/auth/loginPayload:
{
"name": "John Doe",
"email": "johndoe@email.com"
}Resposta:
{
"token": "jwt-token",
"type": "Bearer"
}- BCrypt para armazenamento de senhas
- JWT com expiração
- Validação de entrada
- Controle de acesso por perfis
- Mensagens genéricas de autenticação
- Sessões stateless
- Segredo JWT fora do código
- Refresh Token
- Rate Limiting
- Auditoria de eventos
- Confirmação de e-mail
- Recuperação de senha
- Docker Compose
- Flyway
- Testcontainers
Guilherme Monção