예제 #1
0
 /**
  * @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;
 }
예제 #2
0
 /**
  * @param array $sharedConfig
  * @param Pixie $pixie
  */
 public function __construct($sharedConfig, $pixie)
 {
     parent::__construct($sharedConfig);
     $this->pixie = $pixie;
     $this->vulnService = $this->pixie->vulnService;
 }