Uses cookies to track the requests redirection
This commit is contained in:
parent
f95ac4f809
commit
83f257943f
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
namespace Symfony\Component\HttpKernel\DataCollector;
|
namespace Symfony\Component\HttpKernel\DataCollector;
|
||||||
|
|
||||||
|
use Symfony\Component\HttpFoundation\Cookie;
|
||||||
use Symfony\Component\HttpFoundation\ParameterBag;
|
use Symfony\Component\HttpFoundation\ParameterBag;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
@ -128,21 +129,24 @@ class RequestDataCollector extends DataCollector implements EventSubscriberInter
|
|||||||
unset($this->controllers[$request]);
|
unset($this->controllers[$request]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (null !== $session) {
|
if ($request->attributes->has('_redirected') && $redirectCookie = $request->cookies->get('sf_redirect')) {
|
||||||
if ($request->attributes->has('_redirected')) {
|
$this->data['redirect'] = json_decode($redirectCookie, true);
|
||||||
$this->data['redirect'] = $session->remove('sf_redirect');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($response->isRedirect()) {
|
$response->headers->clearCookie('sf_redirect');
|
||||||
$session->set('sf_redirect', array(
|
}
|
||||||
|
|
||||||
|
if ($response->isRedirect()) {
|
||||||
|
$response->headers->setCookie(new Cookie(
|
||||||
|
'sf_redirect',
|
||||||
|
json_encode(array(
|
||||||
'token' => $response->headers->get('x-debug-token'),
|
'token' => $response->headers->get('x-debug-token'),
|
||||||
'route' => $request->attributes->get('_route', 'n/a'),
|
'route' => $request->attributes->get('_route', 'n/a'),
|
||||||
'method' => $request->getMethod(),
|
'method' => $request->getMethod(),
|
||||||
'controller' => $this->parseController($request->attributes->get('_controller')),
|
'controller' => $this->parseController($request->attributes->get('_controller')),
|
||||||
'status_code' => $statusCode,
|
'status_code' => $statusCode,
|
||||||
'status_text' => Response::$statusTexts[(int) $statusCode],
|
'status_text' => Response::$statusTexts[(int) $statusCode],
|
||||||
));
|
))
|
||||||
}
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->data['identifier'] = $this->data['route'] ?: (is_array($this->data['controller']) ? $this->data['controller']['class'].'::'.$this->data['controller']['method'].'()' : $this->data['controller']);
|
$this->data['identifier'] = $this->data['route'] ?: (is_array($this->data['controller']) ? $this->data['controller']['class'].'::'.$this->data['controller']['method'].'()' : $this->data['controller']);
|
||||||
@ -312,11 +316,11 @@ class RequestDataCollector extends DataCollector implements EventSubscriberInter
|
|||||||
|
|
||||||
public function onKernelResponse(FilterResponseEvent $event)
|
public function onKernelResponse(FilterResponseEvent $event)
|
||||||
{
|
{
|
||||||
if (!$event->isMasterRequest() || !$event->getRequest()->hasSession()) {
|
if (!$event->isMasterRequest()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($event->getRequest()->getSession()->has('sf_redirect')) {
|
if ($event->getRequest()->cookies->has('sf_redirect')) {
|
||||||
$event->getRequest()->attributes->set('_redirected', true);
|
$event->getRequest()->attributes->set('_redirected', true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user