/** * @see Amfphp_Core_Common_IDeserializedRequestHandler */ public function handleDeserializedRequest($deserializedRequest, Amfphp_Core_Common_ServiceRouter $serviceRouter) { self::$requestPacket = $deserializedRequest; self::$responsePacket = new Amfphp_Core_Amf_Packet(); $numHeaders = count(self::$requestPacket->headers); for ($i = 0; $i < $numHeaders; $i++) { $requestHeader = self::$requestPacket->headers[$i]; //handle a header. This is a job for plugins, unless comes a header that is so fundamental that it needs to be handled by the core $fromFilters = Amfphp_Core_FilterManager::getInstance()->callFilters(self::FILTER_AMF_REQUEST_HEADER_HANDLER, null, $requestHeader); if ($fromFilters) { $handler = $fromFilters; $handler->handleRequestHeader($requestHeader); } } $numMessages = count(self::$requestPacket->messages); $rawOutputData = ''; //set amf version to the one detected in request, unless we force amf3 self::$responsePacket->amfVersion = self::$requestPacket->amfVersion; if ($this->forceAmf3) { self::$responsePacket->amfVersion = Amfphp_Core_Amf_Constants::AMF3_ENCODING; } //handle each message for ($i = 0; $i < $numMessages; $i++) { $requestMessage = self::$requestPacket->messages[$i]; $this->lastRequestMessageResponseUri = $requestMessage->responseUri; $responseMessage = $this->handleRequestMessage($requestMessage, $serviceRouter); self::$responsePacket->messages[] = $responseMessage; } return self::$responsePacket; }
/** * @param array $sharedConfig * @param Pixie $pixie */ public function __construct($sharedConfig, $pixie) { parent::__construct($sharedConfig); $this->pixie = $pixie; $this->vulnService = $this->pixie->vulnService; }