micro framework descargar php symfony silex

php - framework - symfony 3



"No se encontrĂ³ un Token en el SecurityContext" en Silex/Symfony (2)

Creé un proyecto Silex con un mecanismo de inicio de sesión.

Como no soy un experto en Symfony, seguí estrictamente las pautas aquí para el proceso de autenticación: http://silex.sensiolabs.org/doc/providers/security.html

... y funciona bien en mi entorno de desarrollo

Sin embargo, cuando implementé mi proyecto en mi servidor de producción, recibo el siguiente error cada vez que intento iniciar sesión en mi aplicación web.

[2012-12-18 16:35:33] CRITICAL: Symfony/Component/Security/Core/Exception/AuthenticationCredentialsNotFoundException: A Token was not found in the SecurityContext. (uncaught exception) at /my/app/path/vendor/symfony/security/Symfony/Component/Security/Http/Firewall/AccessListener.php line 53 [] []

lo que significa que el siguiente código en AccessListener.php

$this->context->getToken());

arroja una expección

Dado el hecho de que el mismo código funciona perfectamente bien en mi entorno de desarrollo, supongo que tiene algo que ver con la configuración de mi servidor de producción.

Encontré este hilo http://groups.google.com/forum/#!msg/symfony-devs/jKphNy_0Q2Y/vYfkAuyjSHEJ que sugiere agregar la siguiente línea al .htaccess de mi proyecto.

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

sin resultado Sigo recibiendo la excepción "A Token was not found in the SecurityContext".

Alguien tiene una idea ?

Editar El contenido de $app[''security.firewalls''] es el siguiente

$app->register(new Silex/Provider/SecurityServiceProvider(), array( ''security.firewalls'' => array( ''login'' => array( ''pattern'' => ''^/login$'' ), ''admin'' => array( ''pattern'' => ''^/'', ''form'' => array(''login_path'' => ''/login'', ''check_path'' => ''/admin/login_check''), ''logout'' => array(''logout_path'' => ''/admin/logout''), // url to call for logging out ''users'' => array( ''admin'' => array(''ROLE_ADMIN'', ''SOMEPASSWORD''), ), ) ) ));



Parece que no tiene nada que ver con HTTP Basic Auth, porque no lo usa en ninguno de sus firewalls. Lo que usa es un firewall con un punto de entrada de form , que luego usa la sesión para almacenar el token de seguridad.

Le sugiero que vea cómo se administran las sesiones (y las cookies) en el servidor de prod en comparación con su entorno de desarrollo.