/** * If users flag isFirstLogin is true redirect to change password page. * * @param \Symfony\Component\HttpKernel\Event\FilterResponseEvent $event */ public function onKernelRequest(GetResponseEvent $event) { // Don't do anything if it's not the master request or another firewall than "secured" $isSecuredArea = (bool) preg_match('/^\\/secured/', $event->getRequest()->getPathInfo()); if (HttpKernel::MASTER_REQUEST != $event->getRequestType() || !$isSecuredArea) { return; } $token = $this->tokenStorage->getToken(); $user = $token->getUser(); // check if employee object exists if (is_object($user) && null !== $user->getEmployee()) { $today = new \DateTime('today'); $isInactive = (bool) (null !== $user->getEmployee()->getLeavingDate() && $user->getEmployee()->getLeavingDate() < $today); // Update user object if leaving date is passed and user is still active if ($token->getUser()->getIsActive() && $isInactive) { $user->setIsActive(false); $this->entityManager->persist($user); $this->entityManager->flush(); if (null !== $this->logger) { $this->logger->notice('[InactiveUserListener] Employee passed leaving date, user will be disabled.', array('username' => $user->getUsername())); } // TODO: Return a proper error message on the login page $logoutUrl = $this->router->generate('OpitOpitHrmUserBundle_logout', array(), true); $event->setResponse(new RedirectResponse($logoutUrl)); } } }
/** * Action performed on kernel response event. * * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event The response event. */ public function onKernelRequest(GetResponseEvent $event) { if ($event->getRequestType() !== HttpKernelInterface::MASTER_REQUEST) { return; } $event->getRequest()->server->set('REMOTE_ADDR', $this->fakeIp); }
public function onKernelRequest(GetResponseEvent $event) { if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) { // don't do anything if it's not the master request return; } $token = $this->context->getToken(); if (is_null($token)) { return; } $_route = $event->getRequest()->attributes->get('_route'); if ($this->context->isGranted('IS_AUTHENTICATED_REMEMBERED')) { if (!$token->getUser() instanceof PersonInterface) { // We don't have a PersonInterface... Nothing to do here. return; } if ($_route == 'lc_home' || $_route == 'fos_user_security_login') { $key = '_security.main.target_path'; #where "main" is your firewall name //check if the referer session key has been set if ($this->session->has($key)) { //set the url based on the link they were trying to access before being authenticated $url = $this->session->get($key); //remove the session key $this->session->remove($key); } else { $url = $this->router->generate('lc_dashboard'); } $event->setResponse(new RedirectResponse($url)); } else { $this->checkUnconfirmedEmail(); } } }
/** * @param GetResponseEvent $event */ public function onRequest(GetResponseEvent $event) { if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) { return; } $this->requestLogger->logRequest($event->getRequest()); }
/** * Determines and sets the Request format. * * @param GetResponseEvent $event The event * * @throws NotAcceptableHttpException */ public function onKernelRequest(GetResponseEvent $event) { $request = $event->getRequest(); if (!$request->attributes->get(FOSRestBundle::ZONE_ATTRIBUTE, true)) { return; } try { $format = $request->getRequestFormat(null); if (null === $format) { $accept = $this->formatNegotiator->getBest(''); if (null !== $accept && 0.0 < $accept->getQuality()) { $format = $request->getFormat($accept->getType()); if (null !== $format) { $request->attributes->set('media_type', $accept->getValue()); } } } if (null === $format) { if ($event->getRequestType() === HttpKernelInterface::MASTER_REQUEST) { throw new NotAcceptableHttpException('No matching accepted Response format could be determined'); } return; } $request->setRequestFormat($format); } catch (StopFormatListenerException $e) { // nothing to do } }
/** * @param GetResponseEvent $event */ public function fetchRequest(GetResponseEvent $event) { if (HttpKernel::MASTER_REQUEST !== $event->getRequestType()) { return; } $this->request = $event->getRequest(); }
public function onKernelRequest(GetResponseEvent $event) { $request = $event->getRequest(); if ($event->getRequestType() == HttpKernelInterface::MASTER_REQUEST && $request->getMethod() == 'POST') { if (stripos($request->getPathInfo(), '/mapi') === 0) { return; } if (stripos($request->getPathInfo(), '/hls') === 0) { return; } $whiteList = array('/coin/pay/return/alipay', '/coin/pay/notify/alipay', '/coin/pay/notify/wxpay', '/pay/center/pay/alipay/return', '/pay/center/pay/wxpay/notify', '/pay/center/pay/alipay/notify', '/live/verify', '/course/order/pay/alipay/notify', '/vip/pay_notify/alipay', '/uploadfile/upload', '/uploadfile/cloud_convertcallback', '/uploadfile/cloud_convertcallback2', '/uploadfile/cloud_convertcallback3', '/uploadfile/cloud_convertheadleadercallback', '/disk/upload', '/file/upload', '/editor/upload', '/disk/convert/callback', '/partner/phpwind/api/notify', '/partner/discuz/api/notify', '/live/auth', '/edu_cloud/sms_callback'); if (in_array($request->getPathInfo(), $whiteList)) { return; } if ($request->isXmlHttpRequest()) { $token = $request->headers->get('X-CSRF-Token'); } else { $token = $request->request->get('_csrf_token', ''); } $request->request->remove('_csrf_token'); $expectedToken = $this->container->get('form.csrf_provider')->generateCsrfToken('site'); if ($token != $expectedToken) { // @todo 需要区分ajax的response if ($request->getPathInfo() == '/admin') { $token = $request->request->get('token'); $result = ServiceKernel::instance()->createService('CloudPlatform.AppService')->repairProblem($token); $this->container->set('Topxia.RepairProblem', $result); } else { $response = $this->container->get('templating')->renderResponse('TopxiaWebBundle:Default:message.html.twig', array('type' => 'error', 'message' => '页面已过期,请重新提交数据!', 'goto' => '', 'duration' => 0)); $event->setResponse($response); } } } }
public function onKernelRequest(GetResponseEvent $event) { $request = $event->getRequest(); // If we have a somebody elses controller, just exit (for now) $controller = $request->attributes->get('_controller'); if (false === strpos($controller, 'ZenMagick')) { return; } if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) { return; } $dispatcher = $event->getDispatcher(); $request->getSession()->restorePersistedServices(); $dispatcher->dispatch('request_ready', new GenericEvent($this, array('request' => $request))); $dispatcher->dispatch('container_ready', new GenericEvent($this, array('request' => $request))); $this->container->get('sacsManager')->authorize($request, $request->getRequestId(), $request->getAccount()); foreach ($this->container->get('containerTagService')->findTaggedServiceIds('zenmagick.http.session.validator') as $id => $args) { if (null != ($validator = $this->container->get($id)) && $validator instanceof SessionValidator) { $session = $request->getSession(); if (!$validator->isValidSession($request, $session)) { $session->getFlashBag()->error('Invalid session'); $session->migrate(); $event->setResponse(new RedirectResponse($request->server->get('HTTP_REFERER'))); } } } }
/** * Determines and sets the Request format * * @param GetResponseEvent $event The event * * @throws NotAcceptableHttpException */ public function onKernelRequest(GetResponseEvent $event) { try { $request = $event->getRequest(); $format = $request->getRequestFormat(null); if (null === $format) { if ($this->formatNegotiator instanceof MediaTypeNegotiatorInterface) { $mediaType = $this->formatNegotiator->getBestMediaType($request); if ($mediaType) { $request->attributes->set('media_type', $mediaType); $format = $request->getFormat($mediaType); } } else { $format = $this->formatNegotiator->getBestFormat($request); } } if (null === $format) { if ($event->getRequestType() === HttpKernelInterface::MASTER_REQUEST) { throw new NotAcceptableHttpException("No matching accepted Response format could be determined"); } return; } $request->setRequestFormat($format); } catch (StopFormatListenerException $e) { // nothing to do } }
public function onKernelRequest(GetResponseEvent $event) { if (!$this->app['phraseanet.configuration']['api_cors']['enabled']) { return; } if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) { return; } $request = $event->getRequest(); if (!preg_match('{api/v(\\d+)}i', $request->getPathInfo() ?: '/')) { return; } // skip if not a CORS request if (!$request->headers->has('Origin') || $request->headers->get('Origin') == $request->getSchemeAndHttpHost()) { return; } $options = array_merge(['allow_credentials' => false, 'allow_origin' => [], 'allow_headers' => [], 'allow_methods' => [], 'expose_headers' => [], 'max_age' => 0, 'hosts' => []], $this->app['phraseanet.configuration']['api_cors']); // skip if the host is not matching if (!$this->checkHost($request, $options)) { return; } // perform preflight checks if ('OPTIONS' === $request->getMethod()) { $event->setResponse($this->getPreflightResponse($request, $options)); return; } if (!$this->checkOrigin($request, $options)) { $response = new Response('', 403, ['Access-Control-Allow-Origin' => 'null']); $event->setResponse($response); return; } $this->app['dispatcher']->addListener(KernelEvents::RESPONSE, [$this, 'onKernelResponse']); $this->options = $options; }
public function onKernelRequest(GetResponseEvent $event, $eventName, EventDispatcherInterface $dispatcher) { if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) { // don't do anything if it's not the master request return; } $token = $this->tokenStorage->getToken(); if (is_null($token) || $token instanceof OAuthToken || $this->authChecker->isGranted('IS_AUTHENTICATED_REMEMBERED') === false) { return; } if (!$token->getUser() instanceof PersonInterface) { // We don't have a PersonInterface... Nothing to do here. return; } try { $this->handleTargetPath($event); $tasks = $this->checkTasks($event, $dispatcher); if (!$tasks) { $this->checkIntent($event); } $this->checkUnconfirmedEmail(); } catch (RedirectResponseException $e) { $event->setResponse($e->getResponse()); } }
public function onKernelRequest(GetResponseEvent $event) { if ($event->getRequestType() !== HttpKernelInterface::MASTER_REQUEST) { return; } $request = $event->getRequest(); $fc_form = $this->form_service->guessFcForm($request); if (!$fc_form instanceof FcForm) { return; } if ($fc_form->getAction()) { return; } /** @var FormInterface $form */ $form = $this->form_service->create($fc_form); $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); $this->form_service->clear($fc_form, array('template' => $data['_template'], 'data' => $this->form_service->initData($data))); if ($fc_form->getIsAjax()) { return; } if ($fc_form->getMessage()) { $message = $fc_form->getMessage(); } else { $message = $this->translator->trans('fc.message.form.is_valid', array(), 'FenrizbesFormConstructorBundle'); } // TODO: Связывать сообщение с конкретной формой и подчищать старые $this->session->getFlashBag()->add('fc_form.success', $message); $response = new RedirectResponse($this->router->generate($request->get('_route'), $request->get('_route_params'))); $event->setResponse($response); } }
public function onKernelRequest(GetResponseEvent $event) { if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) { return; } $request = $event->getRequest(); // skip if not a CORS request if (!$request->headers->has('Origin') || $request->headers->get('Origin') == $request->getSchemeAndHttpHost()) { return; } $options = []; $options['allow_credentials'] = true; $options['allow_headers'] = true; $options['allow_origin'] = true; $options['allow_methods'] = $this->getRouteAllowMethods($request); // perform preflight checks if ('OPTIONS' === $request->getMethod()) { //$options = array(); $event->setResponse($this->getPreflightResponse($request, $options)); return; } if (!$this->checkOrigin($request, $options)) { return; } $this->dispatcher->addListener('kernel.response', [$this, 'onKernelResponse']); $this->options = $options; }
/** * Start the profiler if * - this is not a sub-request but the master request * - we are not on the _wdt or _profiler url * - if the query argument name is configured, only if it is present in the request * - if the url does not match one of the exclude patterns * * @param GetResponseEvent $event */ public function onCoreRequest(GetResponseEvent $event) { if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) { return; } $request = $event->getRequest(); $requestQueryArgument = $this->container->getParameter('mjr_library_profiler.request_query_argument'); if ($requestQueryArgument && is_null($request->query->get($requestQueryArgument))) { return; } elseif ($requestQueryArgument) { $request->query->remove($requestQueryArgument); } $uri = $request->getRequestUri(); if (false !== strpos($uri, "_wdt") || false !== strpos($uri, "_profiler")) { return; } if ($excludePatterns = $this->container->getParameter('mjr_library_profiler.exclude_patterns')) { foreach ($excludePatterns as $exclude) { if (preg_match('@' . $exclude . '@', $uri)) { return; } } } $this->collector->startProfiling($request); }
/** * Add the csv format * @param GetResponseEvent $event */ public function onKernelRequest(GetResponseEvent $event) { if (HttpKernel::MASTER_REQUEST !== $event->getRequestType()) { return; } $event->getRequest()->setFormat('csv', 'text/csv'); }
/** * Reads the SecurityContext from the session. * * @param GetResponseEvent $event A GetResponseEvent instance */ public function handle(GetResponseEvent $event) { if (null !== $this->dispatcher && HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) { $this->dispatcher->addListener(KernelEvents::RESPONSE, array($this, 'onKernelResponse')); } $request = $event->getRequest(); $session = $request->hasPreviousSession() ? $request->getSession() : null; if (null === $session || null === ($token = $session->get('_security_' . $this->contextKey))) { $this->context->setToken(null); return; } $token = unserialize($token); if (null !== $this->logger) { $this->logger->debug('Read SecurityContext from the session'); } if ($token instanceof TokenInterface) { $token = $this->refreshUser($token); } elseif (null !== $token) { if (null !== $this->logger) { $this->logger->warn(sprintf('Session includes a "%s" where a security token is expected', is_object($value) ? get_class($value) : gettype($value))); } $token = null; } $this->context->setToken($token); }
/** * If user is logged-in in legacy_mode (e.g. legacy admin interface), * will inject currently logged-in user in the repository. * * @param GetResponseEvent $event */ public function onKernelRequest(GetResponseEvent $event) { /** @var \eZ\Publish\Core\MVC\ConfigResolverInterface $configResolver */ $request = $event->getRequest(); $session = $request->getSession(); if ($event->getRequestType() !== HttpKernelInterface::MASTER_REQUEST || !$this->configResolver->getParameter('legacy_mode') || !($session->isStarted() && $session->has('eZUserLoggedInID'))) { return; } try { $apiUser = $this->repository->getUserService()->loadUser($session->get('eZUserLoggedInID')); $this->repository->setCurrentUser($apiUser); $token = $this->tokenStorage->getToken(); if ($token instanceof TokenInterface) { $token->setUser(new User($apiUser)); // Don't embed if we already have a LegacyToken, to avoid nested session storage. if (!$token instanceof LegacyToken) { $this->tokenStorage->setToken(new LegacyToken($token)); } } } catch (NotFoundException $e) { // Invalid user ID, the user may have been removed => invalidate the token and the session. $this->tokenStorage->setToken(null); $session->invalidate(); } }
/** * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event */ public function onKernelRequest(GetResponseEvent $event) { if ($event->getRequestType() != HttpKernelInterface::MASTER_REQUEST) { return; } // @todo make endpoint(s) customizable if ($event->getRequest()->getMethod() !== 'POST') { return; } if ($event->getRequest()->getPathInfo() != '/xmlrpc' && $event->getRequest()->getPathInfo() != '/xmlrpc.php') { return; } try { $request = $this->requestGenerator->generateFromRequest($event->getRequest()); if (isset($this->logger)) { $this->logger->debug((string) $request); } } catch (UnexpectedValueException $e) { $event->setResponse(new Response("Invalid request XML\n" . $e->getMessage(), 400)); return; } // @todo refactor to dynamically set follow-up events instead of testing (cors bundle like) $request->attributes->set('IsXmlRpcRequest', true); $requestContext = new RequestContext(); $requestContext->fromRequest($request); $originalContext = $this->router->getContext(); $this->router->setContext($requestContext); $response = $this->httpKernel->handle($request); $event->setResponse($response); $this->router->setContext($originalContext); if ($response instanceof Response) { $event->setResponse($response); } }
/** * Logs master requests on event KernelEvents::REQUEST * * @param GetResponseEvent $event */ public function onKernelRequest(GetResponseEvent $event) { if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) { return; } $this->logRequest($event->getRequest()); }
/** * @param GetResponseEvent $event */ public function onCoreRequest(GetResponseEvent $event) { if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) { return; } $token = $this->securityContext->getToken(); if (!$token) { return; } if (!$token instanceof UsernamePasswordToken) { return; } $key = $this->helper->getSessionKey($this->securityContext->getToken()); $request = $event->getRequest(); $session = $event->getRequest()->getSession(); $user = $this->securityContext->getToken()->getUser(); if (!$session->has($key)) { return; } if ($session->get($key) === true) { return; } $state = 'init'; if ($request->getMethod() == 'POST') { if ($this->helper->checkCode($user, $request->get('_code')) == true) { $session->set($key, true); return; } $state = 'error'; } $event->setResponse($this->templating->renderResponse('SonataUserBundle:Admin:Security/two_step_form.html.twig', array('state' => $state))); }
/** * Get data from request and create Pagination and PartialResponse events. * @param GetResponseEvent $event Event object with request */ public function onRequest(GetResponseEvent $event) { if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) { return; } $request = $event->getRequest(); $pagination = new Pagination(); $partialResponse = new PartialResponse(); if ($request->query->has('page')) { $pagination->setPage($request->query->get('page')); } if ($request->query->has('sort')) { $pagination->setSort($request->query->get('sort')); } if ($request->query->has('items_per_page')) { $pagination->setItemsPerPage($request->query->get('items_per_page')); } if ($request->query->has('fields')) { $partialResponse->setFields($request->query->get('fields')); } $this->paginatorService->setPagination($pagination); $this->paginatorService->setPartialResponse($partialResponse); /** * Append all used parameters from get and post */ $this->paginatorService->setUsedRouteParams(array_merge($request->query->all(), $request->request->all())); }
/** * @param GetResponseEvent $event */ public function onKernelRequest(GetResponseEvent $event) { if ($event->getRequestType() !== HttpKernelInterface::MASTER_REQUEST) { return; } /* @var $request Request */ $request = $event->getRequest(); $file = $request->getScriptName() == '/app_dev.php' ? $request->getPathInfo() : $request->getScriptName(); if (is_file($file = $this->root_dir . '/../web' . $file)) { $response = (new Response())->setPublic(); // caching in prod env if ($this->env == 'prod') { $response->setEtag(md5_file($file))->setExpires((new \DateTime())->setTimestamp(time() + 2592000))->setLastModified((new \DateTime())->setTimestamp(filemtime($file)))->headers->addCacheControlDirective('must-revalidate', true); // response was not modified for this request if ($response->isNotModified($request)) { $event->setResponse($response); return; } } // set content type $mimes = ['css' => 'text/css', 'js' => 'text/javascript']; if (isset($mimes[$ext = pathinfo($file, PATHINFO_EXTENSION)])) { $response->headers->set('Content-Type', $mimes[$ext]); } else { $response->headers->set('Content-Type', mime_content_type($file)); } $event->setResponse($response->setContent(file_get_contents($file))); } }
/** * Start collecting at the beginning of a request * * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event */ public function onKernelRequest(GetResponseEvent $event) { if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType() || !$this->driver || !$this->repository->isEnabled()) { return; } $this->driver->start(); }
public function onKernelRequest(GetResponseEvent $event) { if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) { return; } $request = $event->getRequest(); // skip if not a CORS request if (!$request->headers->has('Origin') || $request->headers->get('Origin') == $request->getSchemeAndHttpHost()) { return; } $options = $this->configurationResolver->getOptions($request); if (!$options) { return; } // perform preflight checks if ('OPTIONS' === $request->getMethod()) { $event->setResponse($this->getPreflightResponse($request, $options)); return; } if (!$this->checkOrigin($request, $options)) { return; } $this->dispatcher->addListener('kernel.response', array($this, 'onKernelResponse')); $this->options = $options; }
public function onKernelRequest(GetResponseEvent $event) { if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) { try { $controller = $event->getRequest()->attributes->get('_controller'); if (strstr($controller, '::')) { //Check if its a "real controller" not assetic for example $generatorYaml = $this->getGeneratorYml($controller); $generator = $this->getGenerator($generatorYaml); $generator->setGeneratorYml($generatorYaml); $generator->setBaseGeneratorName($this->getBaseGeneratorName($controller)); $generator->build(); } } catch (NotAdminGeneratedException $e) { //Lets the word running this is not an admin generated module } } if ($this->container->hasParameter('admingenerator.twig')) { $twig_params = $this->container->getParameter('admingenerator.twig'); if (isset($twig_params['date_format'])) { $this->container->get('twig')->getExtension('core')->setDateFormat($twig_params['date_format'], '%d days'); } if (isset($twig_params['number_format'])) { $this->container->get('twig')->getExtension('core')->setNumberFormat($twig_params['number_format']['decimal'], $twig_params['number_format']['decimal_point'], $twig_params['number_format']['thousand_separator']); } } }
public function onRequestPre(GetResponseEvent $event) { if ($event->getRequestType() !== HttpKernelInterface::MASTER_REQUEST) { return; } $this->start = microtime(true); }
public function handle(GetResponseEvent $event) { if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) { return; } $request = $event->getRequest(); // there may not be authentication information on this request if (!$request->headers->has('Authorization')) { return; } return; // format should be "Authorization: token ABCDEFG" $tokenString = 'HARDCODED'; if (!$tokenString) { // there's no authentication info for us to process return; } // create an object that just exists to hold onto the token string for us $token = new ApiAuthToken(); $token->setAuthToken($tokenString); $returnValue = $this->authenticationManager->authenticate($token); if ($returnValue instanceof TokenInterface) { return $this->securityContext->setToken($returnValue); } }
public function onKernelRequest(GetResponseEvent $event) { $request = $event->getRequest(); if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) { $this->urlMatcher->getContext()->fromRequest($request); } if ($request->attributes->has('_controller')) { // routing is already done return; } // add attributes based on the path info (routing) try { $parameters = $this->urlMatcher->match($request->getPathInfo()); if (null !== $this->logger) { $this->logger->info(sprintf('Matched route "%s" (parameters: %s)', $parameters['_route'], $this->parametersToString($parameters))); } $request->attributes->add($parameters); unset($parameters['_route']); $request->attributes->set('_route_params', $parameters); } catch (ResourceNotFoundException $e) { $message = sprintf('No route found for "%s %s"', $request->getMethod(), $request->getPathInfo()); throw new NotFoundHttpException($message, $e); } catch (MethodNotAllowedException $e) { $message = sprintf('No route found for "%s %s": Method Not Allowed (Allow: %s)', $request->getMethod(), $request->getPathInfo(), strtoupper(implode(', ', $e->getAllowedMethods()))); throw new MethodNotAllowedHttpException($e->getAllowedMethods(), $message, $e); } }
public function doRequest(GetResponseEvent $event) { if ($event->getRequestType() !== HttpKernel::MASTER_REQUEST) { return; } $prefix = ConfigQuery::read("back_office_path"); $defaultEnabled = intval(ConfigQuery::read("back_office_path_default_enabled", "1")); $pathInfo = $event->getRequest()->getPathInfo(); $url = $event->getRequest()->server->get('REQUEST_URI'); // Discard the default /admin URL $isValid = 1 !== $defaultEnabled && strpos($pathInfo, '/' . BackOfficePath::DEFAULT_THELIA_PREFIX) === 0 && $prefix !== null && $prefix !== ""; if ($isValid) { /** @var \Symfony\Component\Routing\RequestContext $context */ $context = $event->getKernel()->getContainer()->get('request.context'); $context->fromRequest($event->getRequest()); throw new NotFoundHttpException(); } // Check if the URL is an backOffice URL $isValid = strpos($pathInfo, '/' . $prefix) === 0 && $prefix !== null && $prefix !== ""; if ($isValid) { $newUrl = $this->replaceUrl($url, $prefix, BackOfficePath::DEFAULT_THELIA_PREFIX); $event->getRequest()->server->set('REQUEST_URI', $newUrl); $event->getRequest()->initialize($event->getRequest()->query->all(), $event->getRequest()->request->all(), $event->getRequest()->attributes->all(), $event->getRequest()->cookies->all(), $event->getRequest()->files->all(), $event->getRequest()->server->all(), $event->getRequest()->getContent()); } }
public function onKernelRequest(GetResponseEvent $event) { $request = $event->getRequest(); // sub requests and ajax requests should not be handled here if (HttpKernel::MASTER_REQUEST != $event->getRequestType() || $request->isXmlHttpRequest()) { return; } if (null === $request->attributes->get('_route')) { $pathInfo = $request->getPathInfo(); // check first if it is /admin/ or /institution/, do nothing if it matches since it should be forwarded to the router // this check is necessary if this listner's priority is higher than RouterListener priority to save execution time // if ((strpos($pathInfo, '/admin') !== false) || (strpos($pathInfo, '/institution') !== false) || (strpos($pathInfo, '/frontend_search') !== false)) { // return; // } if ($this->isConfiguredRoute($pathInfo)) { return; } $routeObj = null; if (is_null($routeObj = $this->routerService->match($pathInfo))) { return; } if ($routeObj->getWebsiteSection() == 1) { $controller = 'AdminBundle:StaticPage:index'; } else { if ($routeObj->getWebsiteSection() == 2) { $controller = 'InstitutionBundle:StaticPage:index'; } else { $controller = 'FrontendBundle:StaticPage:index'; } } $request->attributes->set('_controller', $controller); } }