Skip to content

cardavid7/security-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SecurityCore - API de Seguridad con JWT

Java version Spring Boot License

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.


Tecnologías y Stack

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).

Construcción y Ejecución

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

Tests

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

Ejecución con Docker

Este proyecto incluye un Dockerfile y un docker-compose.yml para facilitar la ejecución en contenedores.

1. Archivo de Variables de Entorno (.env)

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

2. Comando de Ejecución (Docker)

Ejecuta el proyecto (API y DB) con Docker Compose:

docker compose up --build

Documentación Interactiva (Swagger/OpenAPI)

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#/

License

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.

About

SpringBoot backend for core of security

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors