3.6 KiB
3.6 KiB
🔧 Soluciones Implementadas - Recursos Católicos
Resumen de cambios realizados
1. 🔴 Problema: "No sé dónde ver los usuarios registrados"
Solución implementada:
- Creado nuevo endpoint
/usuarios(protegido) - Solo accesible para usuarios autenticados
Cómo usarlo:
- Regístrate y obtén un token JWT
- Haz una petición
GETa:http://localhost:8080/usuarios - Incluye el header:
Authorization: Bearer {tu_token} - Recibirás un JSON con todos los usuarios registrados
Ejemplo con curl:
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:8080/usuarios
Archivos modificados:
- ✅
UsuarioController.java(creado nuevo)
2. 🟡 Problema: "Santo del día no funciona incluso sin estar logeado"
Causa identificada:
- El controlador
/santo/hoyestaba bien configurado en seguridad (permitido sin autenticación) - El problema: La BD no tenía datos de Santos del Día inicializados
Soluciones implementadas:
Opción A: Inicialización automática (Recomendado ✅)
- Actualizado
DataInitializer.javapara cargar automáticamente Santos del Día al arrancar la app - Incluye datos para fechas importantes (hoy 29/06/2026, Navidad, Pascua, etc.)
Cómo usarlo:
- Reinicia el backend
- La BD se inicializará automáticamente
- El endpoint
/santo/hoydevuelve:San Pedro y San Pablo(29/06/2026)
Opción B: Carga manual desde SQL
Si necesitas todos los datos del año, ejecuta manualmente:
mysql -u rc_user -p recursoscatolicos < backend/src/main/resources/db/init.sql
Archivos modificados:
- ✅
DataInitializer.java(añadido métodocargarSantoDelDia())
⚙️ Configuración de Seguridad
El endpoint /santo/hoy está permitido sin autenticación en SecurityConfig.java:
.requestMatchers(HttpMethod.GET, "/santo/**").permitAll()
El endpoint /usuarios está permitido con autenticación:
.anyRequest().authenticated()
🧪 Testing
Probar registro:
curl -X POST http://localhost:8080/auth/register \
-H "Content-Type: application/json" \
-d '{
"nombre": "Juan Pérez",
"email": "juan@ejemplo.com",
"password": "Segura123!",
"tipoUsuario": "individual"
}'
Probar Santo del Día (sin login):
curl http://localhost:8080/santo/hoy
Probar ver usuarios (con token):
# Primero haz login para obtener el token
curl -X POST http://localhost:8080/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "juan@ejemplo.com",
"password": "Segura123!"
}'
# Usa el token recibido:
curl -H "Authorization: Bearer {token}" http://localhost:8080/usuarios
📋 Próximos pasos recomendados
-
Ampliar datos de Santos del Día
- Actualiza
cargarSantoDelDia()con todos los días del año - O crea un JSON
santos-del-dia.jsony cárgalo como los otros datos
- Actualiza
-
Crear panel de administración
- Endpoint para crear/editar parroquias
- Endpoint para gestionar usuarios (lista completa, borrar, editar)
-
Mejorar autenticación
- Implementar roles (ADMIN, USUARIO, etc.)
- Restringir acceso a ciertos endpoints según rol
-
Base de datos
- Crear usuario de BD con contraseña fuerte (cambiar 'TU_PASSWORD_SEGURA' en init.sql)
- Hacer backup regularmente
📝 Notas importantes
- El token JWT expira cada 24 horas (configurable en
application.properties) - Los datos de ejemplo de parroquias se crean automáticamente en la primera ejecución
- El frontend usa
API_BASE = "http://localhost:8080"en desarrollo