129 lines
3.6 KiB
Markdown
129 lines
3.6 KiB
Markdown
# 🔧 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:**
|
|
1. Regístrate y obtén un token JWT
|
|
2. Haz una petición `GET` a: `http://localhost:8080/usuarios`
|
|
3. Incluye el header: `Authorization: Bearer {tu_token}`
|
|
4. Recibirás un JSON con todos los usuarios registrados
|
|
|
|
**Ejemplo con curl:**
|
|
```bash
|
|
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/hoy` estaba 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.java` para 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:**
|
|
1. Reinicia el backend
|
|
2. La BD se inicializará automáticamente
|
|
3. El endpoint `/santo/hoy` devuelve: `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:
|
|
```sql
|
|
mysql -u rc_user -p recursoscatolicos < backend/src/main/resources/db/init.sql
|
|
```
|
|
|
|
**Archivos modificados:**
|
|
- ✅ `DataInitializer.java` (añadido método `cargarSantoDelDia()`)
|
|
|
|
---
|
|
|
|
## ⚙️ Configuración de Seguridad
|
|
|
|
El endpoint `/santo/hoy` está permitido **sin autenticación** en `SecurityConfig.java`:
|
|
```java
|
|
.requestMatchers(HttpMethod.GET, "/santo/**").permitAll()
|
|
```
|
|
|
|
El endpoint `/usuarios` está permitido **con autenticación**:
|
|
```java
|
|
.anyRequest().authenticated()
|
|
```
|
|
|
|
---
|
|
|
|
## 🧪 Testing
|
|
|
|
### Probar registro:
|
|
```bash
|
|
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):
|
|
```bash
|
|
curl http://localhost:8080/santo/hoy
|
|
```
|
|
|
|
### Probar ver usuarios (con token):
|
|
```bash
|
|
# 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
|
|
|
|
1. **Ampliar datos de Santos del Día**
|
|
- Actualiza `cargarSantoDelDia()` con todos los días del año
|
|
- O crea un JSON `santos-del-dia.json` y cárgalo como los otros datos
|
|
|
|
2. **Crear panel de administración**
|
|
- Endpoint para crear/editar parroquias
|
|
- Endpoint para gestionar usuarios (lista completa, borrar, editar)
|
|
|
|
3. **Mejorar autenticación**
|
|
- Implementar roles (ADMIN, USUARIO, etc.)
|
|
- Restringir acceso a ciertos endpoints según rol
|
|
|
|
4. **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
|