Línea 144... |
Línea 144... |
144 |
// --- Inicio de la lógica de la whitelist de CORS ---
|
144 |
// --- Inicio de la lógica de la whitelist de CORS ---
|
145 |
// Obtener los orígenes permitidos desde la configuración. Si no está definido, es una cadena vacía.
|
145 |
// Obtener los orígenes permitidos desde la configuración. Si no está definido, es una cadena vacía.
|
146 |
$whitelistString = $this->config['leaderslinked.cors.allowed_origins'] ?? '';
|
146 |
$whitelistString = $this->config['leaderslinked.cors.allowed_origins'] ?? '';
|
147 |
$allowedOrigins = array_map('trim', explode(',', $whitelistString));
|
147 |
$allowedOrigins = array_map('trim', explode(',', $whitelistString));
|
Línea -... |
Línea 148... |
- |
|
148 |
|
148 |
|
149 |
$headers = $request->getHeaders();
|
Línea 149... |
Línea -... |
149 |
$originHeader = $request->getHeader('Origin');
|
- |
|
150 |
|
150 |
$originHeader = $headers->get('Origin');
|
151 |
// Comprobar si la solicitud tiene una cabecera 'Origin'.
|
151 |
|
Línea 152... |
Línea -... |
152 |
if ($originHeader) {
|
- |
|
153 |
$origin = $originHeader->getUri();
|
- |
|
154 |
|
- |
|
155 |
// MEJORA: Se elimina la barra inclinada (/) del final del origen si existe.
|
- |
|
156 |
// Esto hace que la comparación sea más robusta. 'http://localhost:5173/' coincidirá con 'http://localhost:5173'.
|
- |
|
157 |
$origin = rtrim($origin, '/');
|
- |
|
158 |
|
152 |
if ($originHeader) {
|
159 |
// --- INICIO DE LA DEPURACIÓN ---
|
153 |
$origin = $originHeader->getFieldValue();
|
160 |
// Escribimos en el log de errores de PHP las variables que estamos comparando.
|
- |
|
Línea 161... |
Línea -... |
161 |
error_log("CORS Check - Origen de la solicitud: " . $origin);
|
- |
|
162 |
error_log("CORS Check - Whitelist cargada: " . implode(', ', $allowedOrigins));
|
154 |
|
163 |
// --- FIN DE LA DEPURACIÓN ---
|
155 |
error_log("CORS Check - Origen de la solicitud: " . $origin);
|
164 |
|
156 |
error_log("CORS Check - Whitelist cargada: " . implode(', ', $allowedOrigins));
|
165 |
// Si el origen de la solicitud está en nuestra lista blanca, configuramos las cabeceras CORS.
|
157 |
|
166 |
if (in_array($origin, $allowedOrigins)) {
|
158 |
if (in_array($origin, $allowedOrigins)) {
|