コード例 #1
0
 /**
  * @param string $routeName
  * @param array   $parameters
  *
  * @return string
  */
 public function getToken($routeName, array $parameters = [])
 {
     $route = $this->csrfRouter->getRouteCollection()->get($routeName);
     if (null !== $route) {
         $this->csrfTokenManager->updateRoute($route, $routeName, $parameters);
         return isset($parameters['_token']) && !empty($parameters['_token']) ? $parameters['_token'] : '';
     }
     return '';
 }
コード例 #2
0
 /**
  * @param FilterControllerEvent $event
  */
 public function onKernelController(FilterControllerEvent $event)
 {
     $request = $event->getRequest();
     // Get route name
     $routeName = $request->attributes->get('_route');
     if (!$routeName) {
         return;
     }
     // Get route
     $route = $this->getRoute($routeName);
     if (null === $route) {
         return;
     }
     // Validate route
     $this->tokenManager->validateRoute($route, $routeName, $request);
 }
コード例 #3
0
 /**
  * @param string $name
  * @param array $parameters
  * @param bool|string $referenceType
  * @return string
  */
 public function generate($name, $parameters = [], $referenceType = UrlGeneratorInterface::ABSOLUTE_PATH)
 {
     // Add Csrf token if required
     if ($this->enabled) {
         $route = $this->getRouteCollection()->get($name);
         if (null !== $route) {
             // Apply token if required
             $this->tokenManager->updateRoute($route, $name, $parameters);
         }
     }
     if (null !== $this->parent) {
         return $this->parent->generate($name, $parameters, $referenceType);
     }
     return parent::generate($name, $parameters, $referenceType);
 }