/** * @priority MONITOR * @param ProxyResponseEvent $event */ public function onProxyResponse(ProxyResponseEvent $event) { $request = $event->getRequest(); $response = $event->getResponse(); $logLine = $this->getLogLine($this->getLogData($request, $response)); $level = LogLevel::INFO; if (!$response || !$response->isSuccessful()) { $level = LogLevel::WARNING; } $this->logger->log($level, $logLine); }
/** * @priority normal * * @param ProxyResponseEvent $event */ public function onProxyResponse(ProxyResponseEvent $event) { if (!$event->isCancelled() && $event->hasResponse()) { $response = $event->getResponse(); $request = $event->getRequest(); if (!$response->hasHeaderWithValue('X-Cache', 'HIT')) { $response->addHeader('X-Cache', 'MISS'); $response->addHeader('X-Cache-Hits', 0); } $oldVia = $response->getHeader('Via'); $oldVia[] = $event->getProxy()->getConfig()->getProxyName(); $response->setHeader('Via', $oldVia); if ($this->cacheStrategy->canStoreResponseInCache($response, $event->getRequest())) { $this->storage->save($request, $response, $response->getTtl()); $event->getLogger()->debug('Response was stored in cache'); } } }
/** * Tag outgoing responses * * @priority low * * @param ProxyResponseEvent $event */ public function onProxyResponse(ProxyResponseEvent $event) { if ($event->hasResponse()) { $fullProxyName = sprintf('%s v.%s', $event->getProxy()->getConfig()->getProxyName(), $event->getProxy()->getConfig()->getProxyVersion()); $event->getLogger()->debug('Signing response with proxy name and version'); $response = $event->getResponse(); $response->addHeader('X-Powered-By', $fullProxyName); $response->addHeader('X-Served-By', $event->getProxy()->getConfig()->getProxyName()); $response->addHeader('X-Proxy-Version', $event->getProxy()->getConfig()->getProxyVersion()); } }