public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
 {
     $event = new CacheEvent($this, $request);
     $this->subscriber->preHandle($event);
     if ($event->getResponse()) {
         return $event->getResponse();
     }
     return parent::handle($request, $type, $catch);
 }
 protected function forward(Request $request, $raw = false, Response $entry = null)
 {
     if ($this->store instanceof ApplicationContextStore) {
         $this->kernel->boot();
         $container = $this->kernel->getContainer();
         $this->store->setContainer($container);
         $container->set('http_cache.store', $this->store);
     }
     return parent::forward($request, $raw, $entry);
 }
Exemple #3
0
 /**
  * {@inheritDoc}
  */
 protected function invalidate(Request $request, $catch = false)
 {
     if ('PURGE' !== $request->getMethod()) {
         return parent::invalidate($request, $catch);
     }
     $response = new Response();
     if ($this->getStore()->purge($request->getUri())) {
         $response->setStatusCode(200, 'Purged');
     } else {
         $response->setStatusCode(200, 'Not purged');
     }
     return $response;
 }
Exemple #4
0
 protected function invalidate(Request $request, $catch = false)
 {
     if ('PURGE' !== $request->getMethod()) {
         return parent::invalidate($request, $catch);
     }
     if ('127.0.0.1' !== $request->getClientIp()) {
         return new Response('Invalid HTTP method', Response::HTTP_BAD_REQUEST);
     }
     $response = new Response();
     if ($this->getStore()->purge($request->getUri())) {
         $response->setStatusCode(200, 'Purged');
     } else {
         $response->setStatusCode(200, 'Not found');
     }
     return $response;
 }
Exemple #5
0
    public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
    {
        if (!$this->isInternalRequest($request)) {
            // Prevent tampering attacks on the hash mechanism
            if ($request->headers->get('accept') === static::USER_HASH_ACCEPT_HEADER
                || $request->headers->get(static::USER_HASH_HEADER) !== null) {
                return new Response('', 400);
            }

            if ($request->isMethodSafe()) {
                $request->headers->set(static::USER_HASH_HEADER, $this->getUserHash($request));
            }
        }

        return parent::handle($request, $type, $catch);
    }
 /**
  * Handle invalidation, including Http PURGE requests.
  * All non-allowed PURGE requests will receive an HTTP 405
  *
  * @param \Symfony\Component\HttpFoundation\Request $request
  * @param boolean $catch
  *
  * @return \Symfony\Component\HttpFoundation\Response
  */
 protected function invalidate(Request $request, $catch = false)
 {
     if ($request->getMethod() !== 'PURGE') {
         return parent::invalidate($request, $catch);
     }
     // Reject all non-authorized clients
     if (!$this->isInternalRequestAllowed($request)) {
         return new Response('', 405);
     }
     $response = new Response();
     $store = $this->getStore();
     if ($store instanceof RequestAwarePurger) {
         $result = $store->purgeByRequest($request);
     } else {
         $result = $store->purge($request->getUri());
     }
     if ($result === true) {
         $response->setStatusCode(200, 'Purged');
     } else {
         $response->setStatusCode(404, 'Not purged');
     }
     return $response;
 }
 /**
  * {@inheritDoc}
  *
  * Adding the Events::PRE_INVALIDATE event.
  */
 protected function invalidate(Request $request, $catch = false)
 {
     if ($this->getEventDispatcher()->hasListeners(Events::PRE_INVALIDATE)) {
         $event = new CacheEvent($this, $request);
         $this->getEventDispatcher()->dispatch(Events::PRE_INVALIDATE, $event);
         if ($event->getResponse()) {
             return $event->getResponse();
         }
     }
     return parent::invalidate($request, $catch);
 }
Exemple #8
0
 public function __construct(HttpKernelInterface $kernel, array $envOptions, $cacheDir = null)
 {
     $this->envOptions = $envOptions;
     parent::__construct($kernel, $cacheDir);
 }
 public function __construct(HttpKernelInterface $kernel, $cacheDir = null)
 {
     $kernel->boot();
     parent::__construct($kernel, $cacheDir);
 }