getResponse() public method

Returns the current response object
public getResponse ( ) : Response
return Symfony\Component\HttpFoundation\Response
コード例 #1
0
 /**
  * 输出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);
 }
コード例 #2
0
 /**
  * {@inheritdoc}
  */
 public function onKernelResponse(FilterResponseEvent $event)
 {
     if (count($this->varyHeaders) === 0) {
         return;
     }
     $event->getResponse()->setVary(array_unique(array_merge($event->getResponse()->getVary(), $this->varyHeaders)));
 }
コード例 #3
0
 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
     }
 }
コード例 #4
0
 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"]));
     }
 }
コード例 #5
0
ファイル: Request.php プロジェクト: docteurklein/event-store
 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);
     }
 }
コード例 #6
0
 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);
     }
 }
コード例 #7
0
 /**
  * @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');
     }
 }
コード例 #8
0
 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);
 }
コード例 #9
0
ファイル: ResponseSecurer.php プロジェクト: forkcms/forkcms
 /**
  * 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);
         }
     }
 }
コード例 #10
0
 /**
  * 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()));
 }
コード例 #11
0
ファイル: TestClass.php プロジェクト: aWEBoLabs/taxi
 /**
  * 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'));
     }
 }
コード例 #12
0
ファイル: ResponseSecurer.php プロジェクト: bwgraves/forkcms
 /**
  * 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');
 }
コード例 #13
0
 /**
  * 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');
 }
コード例 #14
0
 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));
     }
 }
コード例 #15
0
ファイル: ApiListener.php プロジェクト: holtchesley/Zeega
 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);
         }
     }
 }
コード例 #16
0
ファイル: AppendAnalyticsListener.php プロジェクト: sulu/sulu
 /**
  * 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));
 }
コード例 #17
0
 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);
     }
 }
コード例 #18
0
 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()));
     }
 }
コード例 #19
0
 /**
  * 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;
 }
コード例 #20
0
ファイル: BetaListener.php プロジェクト: nyxarr/symfony2-blog
 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();
 }
コード例 #21
0
 /**
  * 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()));
 }
コード例 #22
0
 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');
     }
 }
コード例 #23
0
ファイル: BetaListener.php プロジェクト: messi1983/messi-repo
 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);
 }
コード例 #24
0
 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);
         }
     }
 }
コード例 #25
0
 /**
  * @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')]));
     }
 }
コード例 #26
0
ファイル: Listener.php プロジェクト: enurit/BackOfficePath
 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);
         }
     }
 }
コード例 #27
0
    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);
    }
コード例 #28
0
 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);
 }
コード例 #29
0
 /**
  * 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());
     }
 }
コード例 #30
0
 /**
  * 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());
 }