Proyectos de Subversion LeadersLinked - Services

Rev

Rev 754 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 754 Rev 769
Línea 139... Línea 139...
139
 
139
 
140
        $response = $event->getResponse();
140
        $response = $event->getResponse();
141
        $request = $event->getRequest();
141
        $request = $event->getRequest();
Línea 142... Línea -...
142
        $serviceManager = $event->getApplication()->getServiceManager();
-
 
143
 
-
 
144
        // --- Inicio de la lógica de la whitelist de CORS ---
142
        $serviceManager = $event->getApplication()->getServiceManager();
145
        // Obtener los orígenes permitidos desde la configuración. Si no está definido, es una cadena vacía.
143
 
Línea 146... Línea 144...
146
        $whitelistString = $this->config['leaderslinked.cors.allowed_origins'] ?? '';
144
        $whitelistString = $this->config['leaderslinked.cors.allowed_origins'] ?? '';
147
        $allowedOrigins = array_map('trim', explode(',', $whitelistString));
145
        $allowedOrigins = array_map('trim', explode(',', $whitelistString));
Línea 162... Línea 160...
162
                $headers->addHeaderLine('Access-Control-Allow-Headers', 'Authorization, Content-Type, token, secret, rand, created, x-csrf-token');
160
                $headers->addHeaderLine('Access-Control-Allow-Headers', 'Authorization, Content-Type, token, secret, rand, created, x-csrf-token');
163
                $headers->addHeaderLine('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE');
161
                $headers->addHeaderLine('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE');
164
                $headers->addHeaderLine('Access-Control-Max-Age', '86400');
162
                $headers->addHeaderLine('Access-Control-Max-Age', '86400');
Línea 165... Línea 163...
165
                
163
                
166
            }
-
 
167
            // Si el origen no está en la lista blanca, no añadimos ninguna cabecera.
-
 
168
            // El navegador aplicará la política del mismo origen y bloqueará la solicitud.
164
            }
Línea 169... Línea -...
169
        }
-
 
170
 
-
 
171
        // Las solicitudes de pre-vuelo (pre-flight) usan el método OPTIONS.
-
 
172
        // Deben devolver las cabeceras CORS y una respuesta 200 OK inmediatamente.
-
 
173
        if ($request->isOptions() && $originHeader) {
-
 
174
            $response->setStatusCode(200);
-
 
175
            // Detenemos la ejecución para las solicitudes de pre-vuelo y devolvemos la respuesta.
-
 
176
            return $response;
-
 
177
        }
-
 
178
        // --- Fin de la lógica de la whitelist de CORS ---
165
        }
Línea 179... Línea 166...
179
 
166
 
180
        $event->setResponse($response);
167
        $event->setResponse($response);
181
 
168