/** * 输出debugBar,只有当页面有</body>标签时有效。 * * @param FilterResponseEvent $event */ public function onKernelResponse(FilterResponseEvent $event) { $response = $event->getResponse(); $request = $event->getRequest(); if (!$event->isMasterRequest()) { return; } if ($request->isXmlHttpRequest()) { return; } if ($response->isRedirection() || $response->headers->has('Content-Type') && false === strpos($response->headers->get('Content-Type'), 'html') || 'html' !== $request->getRequestFormat()) { return; } $path = null; if ($this->app['debug_bar.auto_res']) { $scriptName = $event->getRequest()->server->get('SCRIPT_NAME'); $path = $scriptName . $this->app['debug_bar.path']; } else { $path = $this->app['debug_bar.path']; } $render = $this->app['debug_bar']->getJavascriptRenderer($path); ob_start(); echo $render->renderHead(); echo $render->render(); $debugContent = ob_get_contents(); ob_end_clean(); $content = $response->getContent(); if (false === strpos($content, '</body>')) { $content .= $debugContent; } else { $content = str_replace("</body>", $debugContent . '</body>', $content); } $event->getResponse()->setContent($content); }
/** * {@inheritdoc} */ public function onKernelResponse(FilterResponseEvent $event) { if (count($this->varyHeaders) === 0) { return; } $event->getResponse()->setVary(array_unique(array_merge($event->getResponse()->getVary(), $this->varyHeaders))); }
public function onKernelResponse(FilterResponseEvent $event) { if ($this->security->isGranted('ROLE_SUPER_ADMIN')) { $event->getResponse()->headers->set('Location', $this->router->generate('acme_super_admin_role_homepage')); } elseif ($this->security->isGranted('ROLE_LGS')) { $event->getResponse()->headers->set('Location', $this->router->generate('acme_lgs_role_homepage')); } elseif ($this->security->isGranted('ROLE_ADMIN')) { $event->getResponse()->headers->set('Location', $this->router->generate('acme_admin_role_homepage')); } elseif ($this->security->isGranted('ROLE_DISTRICT')) { $event->getResponse()->headers->set('Location', $this->router->generate('acme_district_role_homepage')); } elseif ($this->security->isGranted('ROLE_COUNSELOR')) { $event->getResponse()->headers->set('Location', $this->router->generate('acme_counselor_role_homepage')); } elseif ($this->security->isGranted('ROLE_TEACHER')) { $event->getResponse()->headers->set('Location', $this->router->generate('acme_teacher_role_homepage')); } elseif ($this->security->isGranted('ROLE_PARENT')) { $event->getResponse()->headers->set('Location', $this->router->generate('acme_parent_role_homepage')); } elseif ($this->security->isGranted('ROLE_STUDENT')) { $event->getResponse()->headers->set('Location', $this->router->generate('acme_student_role_homepage')); } elseif ($this->security->isGranted('ROLE_OTHER')) { $event->getResponse()->headers->set('Location', $this->router->generate('acme_other_role_homepage')); } elseif ($this->security->isGranted('ROLE_USER')) { $event->getResponse()->headers->set('Location', $this->router->generate('acme_user_role_homepage')); } else { // let the normal response go through } }
public function onKernelResponse(FilterResponseEvent $event) { $debug = $this->container->getParameter('rest.config')['debug']; $arr = $event->getRequest()->headers->get("accept"); if (!is_array($arr)) { $arr = array($arr); } if (is_array($arr) && (in_array("text/html", $arr) || in_array("*/*", $arr))) { return; } $response = $event->getResponse(); if (in_array($response->headers->get("content-type"), $arr)) { return; } $error = $response->isServerError() || $event->getResponse()->isClientError(); if ($error && self::$exception != null) { $result = array(); $result["status"] = $response->getStatusCode(); if (self::$exception != null) { $result["message"] = self::$exception->getMessage(); if ($debug) { $result["stacktrace"] = self::$exception->getTraceAsString(); } } else { $result["message"] = "unknown"; if ($debug) { $result["stacktrace"] = ""; } } $classParser = $this->container->get("rest.internal_class_parser"); $content = $classParser->serializeObject($result, true); $response->setContent($content["result"]); $response->headers->add(array("content-type" => $content["type"])); } }
public function onResponse(FilterResponseEvent $event) { foreach (new \RecursiveIteratorIterator(new \RecursiveArrayIterator($this->versions)) as $version) { $event->getResponse()->setEtag($version); $event->getResponse()->headers->set($this->key, $version); } }
public function onKernelResponse(FilterResponseEvent $event) { $referer = $event->getRequest()->headers->get('referer'); $event->getResponse()->headers->set('Access-Control-Allow-Methods', 'GET, PUT, DELETE'); if ($referer) { $event->getResponse()->headers->set('Access-Control-Allow-Origin', $referer); } }
/** * @Di\Observe("kernel.response", priority=100) */ public function onKernelResponse(FilterResponseEvent $event) { if ($event->getResponse()->getStatusCode() == 401) { // Removes header to avoid some browsers like chrome to show the // authenticate window. $event->getResponse()->headers->remove('WWW-Authenticate'); } }
public function onKernelResponse(FilterResponseEvent $event) { if ($event->getResponse()->headers->has('Content-Language')) { return; } $locale = $event->getRequest()->getLocale(); $language = current(explode('_', $locale, 2)); $event->getResponse()->headers->set('Content-Language', $language); }
/** * Add some headers to the response to make our application more secure * see https://www.owasp.org/index.php/List_of_useful_HTTP_headers * * @param FilterResponseEvent $event */ public function onKernelResponse(FilterResponseEvent $event) { $headers = ['X-Frame-Options' => 'deny', 'X-XSS-Protection' => '1; mode=block', 'X-Content-Type-Options' => 'nosniff']; foreach ($headers as $header => $value) { if (!$event->getResponse()->headers->has($header)) { $event->getResponse()->headers->set($header, $value); } } }
/** * Converts relative URLs to absolute URLs. * * @param \Symfony\Component\HttpKernel\Event\FilterResponseEvent $event * The response event. */ public function onResponse(FilterResponseEvent $event) { // Only care about RSS responses. if (stripos($event->getResponse()->headers->get('Content-Type'), 'application/rss+xml') === FALSE) { return; } $response = $event->getResponse(); $response->setContent($this->transformRootRelativeUrlsToAbsolute($response->getContent(), $event->getRequest())); }
/** * Flags the response in case a rebuild indicator is used. */ public function onKernelResponseTest(FilterResponseEvent $event) { if ($this->container->hasParameter('container_rebuild_indicator')) { $event->getResponse()->headers->set('container_rebuild_indicator', $this->container->getParameter('container_rebuild_indicator')); } if ($this->container->hasParameter('container_rebuild_test_parameter')) { $event->getResponse()->headers->set('container_rebuild_test_parameter', $this->container->getParameter('container_rebuild_test_parameter')); } }
/** * Add some headers to the response to make our application more secure * see https://www.owasp.org/index.php/List_of_useful_HTTP_headers * * @param FilterResponseEvent $event */ public function onKernelResponse(FilterResponseEvent $event) { // provides clickjacking protection $event->getResponse()->headers->set('X-Frame-Options', 'deny'); // enables the XSS filter built into most recent browsers $event->getResponse()->headers->set('X-XSS-Protection', '1; mode=block'); // prevents IE and Chrome from MIME-sniffing $event->getResponse()->headers->set('X-Content-Type-Options', 'nosniff'); }
/** * Sets security headers. * * @param \Symfony\Component\HttpKernel\Event\FilterResponseEvent $event * * @return void */ public function onKernelResponse(FilterResponseEvent $event) { if (!$event->isMasterRequest()) { return; } // Can be changed to SAMEORIGIN to allow framing on the same domain. $event->getResponse()->headers->set(static::HEADER_X_FRAME_OPTIONS, 'DENY'); $event->getResponse()->headers->set(static::HEADER_X_CONTENT_TYPE_OPTIONS, 'nosniff'); $event->getResponse()->headers->set(static::HEADER_X_XSS_PROTECTION, '1; mode=block'); }
public function onKernelResponse(FilterResponseEvent $event) { //Check if the current response contains an error. If it does, do not set the cookie as the Locale may not be properly set if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType() || !($event->getResponse()->isSuccessful() || $event->getResponse()->isRedirection())) { return; } $request = $event->getRequest(); if (!$request->cookies->has($this->cookieName) || $request->cookies->get($this->cookieName) !== $request->getLocale()) { $event->getResponse()->headers->setCookie(new Cookie($this->cookieName, $request->getLocale(), time() + $this->cookieLifetime, $this->cookiePath, $this->cookieDomain, $this->cookieSecure, $this->cookieHttponly)); } }
public function onKernelResponse(FilterResponseEvent $event) { if ($event->getResponse()->getStatusCode() == 200) { if (preg_match("/\\/api\\//", $event->getRequest()->getUri())) { $content = $event->getResponse()->getContent(); $content = preg_replace("/(\n|\r)*/", "", $content); $content = preg_replace("/\\s\\s+/", "", $content); $event->getResponse()->setContent($content); } } }
/** * Appends analytics scripts into body. * * @param FilterResponseEvent $event */ public function onResponse(FilterResponseEvent $event) { if (0 !== strpos($event->getResponse()->headers->get('Content-Type'), 'text/html') || $this->requestAnalyzer->getPortalInformation() === null) { return; } $portalUrl = $this->requestAnalyzer->getAttribute('urlExpression'); $analytics = $this->analyticsRepository->findByUrl($portalUrl, $this->requestAnalyzer->getPortalInformation()->getWebspaceKey(), $this->environment); $content = $this->engine->render('SuluWebsiteBundle:Analytics:website.html.twig', ['analytics' => $analytics]); $response = $event->getResponse(); $responseContent = $response->getContent(); $response->setContent(str_replace('</body>', $content . '</body>', $responseContent)); }
public function onKernelResponse(FilterResponseEvent $event) { // $referer = $event->getRequest()->headers->get('referer'); // $allowAccess = array(); // preg_match("/.*([^\.])\.net/", $referer, $allowAccess); $event->getResponse()->headers->set('Access-Control-Allow-Methods', 'GET, PUT, DELETE, OPTIONS'); $origin = $event->getRequest()->headers->get('origin'); if ($origin) { // $event->getResponse()->headers->set('Access-Control-Allow-Origin', $allowAccess[0]); $event->getResponse()->headers->set('Access-Control-Allow-Origin', $origin); } }
public function onKernelResponse(FilterResponseEvent $event) { if (!$this->escapingDecisionManager->isEscapingNeeded($event->getRequest(), $event->getResponse())) { return; } $response = $event->getResponse(); $decoded = json_decode($response->getContent(), true); if (null !== $decoded && is_array($decoded)) { $response->setContent(json_encode($this->escapeRecursively($decoded))); } else { $response->setContent($this->escapeString($response->getContent())); } }
/** * Response Event. * * @param FilterResponseEvent $event * * @return FilterResponseEvent */ public function onKernelResponse(FilterResponseEvent $event) { if (!isset($this->config['enabled']) || !$this->config['enabled']) { return $event; } $maxAge = isset($this->config['max_age']) ? $this->config['max_age'] : 0; $event->getResponse()->setMaxAge($maxAge)->setPublic(); if (isset($this->config['etag']) && $this->config['etag'] === true) { $etag = md5($event->getResponse()->getContent()); $event->getResponse()->setEtag($etag); } return $event; }
public function onKernelResponse(FilterResponseEvent $event) { // On récupère la réponse depuis l'évènement $response = $event->getResponse(); if ($this->dateFin > new \Datetime()) { // On utilise notre méthode "reine" $joursRestant = $this->dateFin->diff(new \Datetime())->days; $response = $this->displayBeta($event->getResponse(), $joursRestant); } // On n'oublie pas d'enregistrer les modifications dans l'évènement $event->setResponse($response); // On stoppe la propagation de l'évènement en cours (ici, kernel.response) // $event->stopPropagation(); }
/** * Sets the 'is-active' class on links. * * @param \Symfony\Component\HttpKernel\Event\FilterResponseEvent $event * The response event. */ public function onResponse(FilterResponseEvent $event) { // Only care about HTML responses. if (stripos($event->getResponse()->headers->get('Content-Type'), 'text/html') === FALSE) { return; } // For authenticated users, the 'is-active' class is set in JavaScript. // @see system_page_attachments() if ($this->currentUser->isAuthenticated()) { return; } $response = $event->getResponse(); $response->setContent(static::setLinkActiveClass($response->getContent(), ltrim($this->currentPath->getPath(), '/'), $this->pathMatcher->isFrontPage(), $this->languageManager->getCurrentLanguage(LanguageInterface::TYPE_URL)->getId(), $event->getRequest()->query->all())); }
public function onKernelResponse(FilterResponseEvent $event) { if (!$event->isMasterRequest()) { return; } $token = $this->tokenStorage->getToken(); if ($token !== null) { $state = hash('sha256', $token->serialize()); $cookie = new Cookie('session_state', $state, 0, '/', null, false, false); $event->getResponse()->headers->setCookie($cookie); } else { $event->getResponse()->headers->removeCookie('session_state'); } }
public function onKernelResponse(FilterResponseEvent $event) { // On teste si la requête est bien la requête principale if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) { return; } // On récupère la réponse depuis l'évènement $response = $event->getResponse(); $joursRestant = $this->dateFin->diff(new \Datetime())->days; if ($joursRestant > 0) { $response = $this->displayBeta($event->getResponse(), $joursRestant); } // On n'oublie pas d'enregistrer les modifications dans l'évènement $event->setResponse($response); }
public function onKernelResponse(FilterResponseEvent $event) { if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) { // don't do anything if it's not the master request return; } if (false === strpos($event->getRequest()->getRequestUri(), 'login')) { if ($event->getRequest()->isXmlHttpRequest() && $event->getResponse()->getStatusCode() == "302") { $event->getResponse()->setStatusCode(401); $response = new \Symfony\Component\HttpFoundation\Response(); $response->setStatusCode(401); $event->setResponse($response); } } }
/** * @param FilterResponseEvent $event */ public function onKernelResponse(FilterResponseEvent $event) { $allowedMethods = $this->loader->getAllowedMethods(); if (isset($allowedMethods[$event->getRequest()->get('_route')])) { $event->getResponse()->headers->set('Allow', implode(', ', $allowedMethods[$event->getRequest()->get('_route')])); } }
public function doResponse(FilterResponseEvent $event) { $response = $event->getResponse(); $url = $event->getRequest()->getPathInfo(); $prefix = ConfigQuery::read("back_office_path"); $defaultEnabled = intval(ConfigQuery::read("back_office_path_default_enabled", "1")); $contentType = $response->headers->get('Content-Type'); // skip if the default thelia prefixe is enabled if ($defaultEnabled === 1) { return; } $isValid = strpos($url, '/' . BackOfficePath::DEFAULT_THELIA_PREFIX) === 0 && $prefix !== null && $prefix !== ""; if ($isValid) { if ($response instanceof RedirectResponse) { $targetUrl = $response->getTargetUrl(); if (strpos($targetUrl, '/' . BackOfficePath::DEFAULT_THELIA_PREFIX) !== false) { $newUrl = $this->replaceUrl($targetUrl, BackOfficePath::DEFAULT_THELIA_PREFIX, $prefix); $response->setTargetUrl($newUrl); } } else { $content = $this->replaceUrl($response->getContent(), BackOfficePath::DEFAULT_THELIA_PREFIX, $prefix); $response->setContent($content); } } }
public function onCoreResponse(FilterResponseEvent $event) { if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) { return; } $response = $event->getResponse(); $request = $event->getRequest(); // do not capture redirects or modify XML HTTP Requests if ($request->isXmlHttpRequest()) { return; } if ($response->headers->has('X-Debug-Token') && $response->isRedirect() && $this->interceptRedirects) { if (null !== $session = $request->getSession()) { // keep current flashes for one more request $session->setFlashes($session->getFlashes()); } $response->setContent($this->templating->render('WebProfilerBundle:Profiler:toolbar_redirect.html.twig', array('location' => $response->headers->get('Location')))); $response->setStatusCode(200); $response->headers->remove('Location'); } if (!$response->headers->has('X-Debug-Token') || '3' === substr($response->getStatusCode(), 0, 1) || ($response->headers->has('Content-Type') && false === strpos($response->headers->get('Content-Type'), 'html')) || 'html' !== $request->getRequestFormat() ) { return; } $this->injectToolbar($response); }
public function onKernelResponse(FilterResponseEvent $event) { if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) { return; } $response = $event->getResponse(); $request = $event->getRequest(); // do not capture redirects or modify XML HTTP Requests if ($request->isXmlHttpRequest()) { return; } if ($response->headers->has('X-Debug-Token') && $response->isRedirect() && $this->interceptRedirects) { $session = $request->getSession(); if ($session && $session->getFlashBag() instanceof AutoExpireFlashBag) { // keep current flashes for one more request if using AutoExpireFlashBag $session->getFlashBag()->setAll($session->getFlashBag()->peekAll()); } $response->setContent($this->templating->render('WebProfilerBundle:Profiler:toolbar_redirect.html.twig', array('location' => $response->headers->get('Location')))); $response->setStatusCode(200); $response->headers->remove('Location'); } if (self::DISABLED === $this->mode || !$response->headers->has('X-Debug-Token') || $response->isRedirection() || $response->headers->has('Content-Type') && false === strpos($response->headers->get('Content-Type'), 'html') || 'html' !== $request->getRequestFormat()) { return; } $this->injectToolbar($response); }
/** * Unwraps an enforced response. */ public function onKernelResponse(FilterResponseEvent $event) { $response = $event->getResponse(); if ($response instanceof EnforcedResponse && $event->getRequestType() === HttpKernelInterface::MASTER_REQUEST) { $event->setResponse($response->getResponse()); } }
/** * Filters the Response. * * @param FilterResponseEvent $event A FilterResponseEvent instance */ public function onKernelResponse(FilterResponseEvent $event) { if (!$event->isMasterRequest() || null === $this->surrogate) { return; } $this->surrogate->addSurrogateControl($event->getResponse()); }