Este proyecto implementa una API RESTful dedicada a la gestión de autenticación y autorización mediante JSON Web Tokens (JWT). Está construido con Spring Boot 3 y utiliza PostgreSQL para la persistencia de datos y Spring Security como núcleo de seguridad.
El proyecto utiliza las siguientes tecnologías clave:
| Tecnología | Versión | Propósito |
|---|---|---|
| Java | 21 | Lenguaje de programación principal. |
| Spring Boot | 3.5.6 | Framework para el desarrollo rápido de la API. |
| Spring Security | 6.5.5 | Manejo de autenticación, autorización y filtros. |
| Spring Data JPA | - | Abstracción para el acceso a la base de datos. |
| JsonWebToken JJWT | 0.13.0 | Generación, firma y validación de JWTs. |
| PostgreSQL | 16.x | Base de datos relacional robusta. |
| Springdoc-OpenAPI | 2.8.13 | Generación automática de documentación (Swagger). |
Compila y ejecuta la aplicación usando el plugin de Spring Boot para Maven:
# 1. Compila y empaqueta el proyecto
mvn clean install
# 2. Ejecuta la aplicación
mvn spring-boot:run
Para ejecutar las pruebas unitarias y de integración (las pruebas de integración típicamente usan una base de datos en memoria como H2 o Testcontainers):
mvn test
Este proyecto incluye un Dockerfile y un docker-compose.yml para facilitar la ejecución en contenedores.
Debes crear un archivo llamado .env en la raíz del proyecto para que Docker Compose pueda configurar la base de datos y la clave JWT y demás configuraciones necesarias.
Tip: Puedes generar la clave secreta base64 de 32 bytes con este comando en tu terminal Git/Linux:
openssl rand -base64 32
Contenido de .env (Ejemplo):
#DATABASE
DB_POSTGRES=security
DB_URL=jdbc:postgresql://db:5432/security
DB_USERNAME=postgres
DB_PASSWORD=123456
#user admin
security_user_password=123456
security_admin_password=123456
security_endpoints_scan=create
### Jwt ###
security_jwt_expiration_minutes=60
security_jwt_secret_key=pZstgXrt5nlnZVt6UcSPOTHWdAtXiE7QsPdf5Y8/6yM=
### swagger ###
security_swagger_enabled=true
springdoc_show_login_endpoint=true
Ejecuta el proyecto (API y DB) con Docker Compose:
docker compose up --build
La documentación completa de la API, incluyendo modelos de datos y pruebas directas, está disponible a través de Swagger UI en: http://localhost:5002/swagger-ui/index.html#/
Todos los derechos reservados. Este software es propietario (Proprietary) y no se permite la distribución o modificación sin el consentimiento expreso del autor.