|
11 | 11 |
|
12 | 12 | namespace Symfony\Component\HttpKernel\DataCollector;
|
13 | 13 |
|
| 14 | +use Symfony\Component\HttpFoundation\Cookie; |
14 | 15 | use Symfony\Component\HttpFoundation\ParameterBag;
|
15 | 16 | use Symfony\Component\HttpFoundation\Request;
|
16 | 17 | use Symfony\Component\HttpFoundation\Response;
|
@@ -128,21 +129,24 @@ public function collect(Request $request, Response $response, \Exception $except
|
128 | 129 | unset($this->controllers[$request]);
|
129 | 130 | }
|
130 | 131 |
|
131 |
| - if (null !== $session) { |
132 |
| - if ($request->attributes->has('_redirected')) { |
133 |
| - $this->data['redirect'] = $session->remove('sf_redirect'); |
134 |
| - } |
| 132 | + if ($request->attributes->has('_redirected') && $redirectCookie = $request->cookies->get('sf_redirect')) { |
| 133 | + $this->data['redirect'] = json_decode($redirectCookie, true); |
| 134 | + |
| 135 | + $response->headers->clearCookie('sf_redirect'); |
| 136 | + } |
135 | 137 |
|
136 |
| - if ($response->isRedirect()) { |
137 |
| - $session->set('sf_redirect', array( |
| 138 | + if ($response->isRedirect()) { |
| 139 | + $response->headers->setCookie(new Cookie( |
| 140 | + 'sf_redirect', |
| 141 | + json_encode(array( |
138 | 142 | 'token' => $response->headers->get('x-debug-token'),
|
139 | 143 | 'route' => $request->attributes->get('_route', 'n/a'),
|
140 | 144 | 'method' => $request->getMethod(),
|
141 | 145 | 'controller' => $this->parseController($request->attributes->get('_controller')),
|
142 | 146 | 'status_code' => $statusCode,
|
143 | 147 | 'status_text' => Response::$statusTexts[(int) $statusCode],
|
144 |
| - )); |
145 |
| - } |
| 148 | + )) |
| 149 | + )); |
146 | 150 | }
|
147 | 151 |
|
148 | 152 | $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 @@ public function onKernelController(FilterControllerEvent $event)
|
312 | 316 |
|
313 | 317 | public function onKernelResponse(FilterResponseEvent $event)
|
314 | 318 | {
|
315 |
| - if (!$event->isMasterRequest() || !$event->getRequest()->hasSession()) { |
| 319 | + if (!$event->isMasterRequest()) { |
316 | 320 | return;
|
317 | 321 | }
|
318 | 322 |
|
319 |
| - if ($event->getRequest()->getSession()->has('sf_redirect')) { |
| 323 | + if ($event->getRequest()->cookies->has('sf_redirect')) { |
320 | 324 | $event->getRequest()->attributes->set('_redirected', true);
|
321 | 325 | }
|
322 | 326 | }
|
|
0 commit comments