Example #1
0
 private function processRegistration()
 {
     $dom = $this->xmlDom;
     $headerNode = $dom->getElementsByTagName('SIF_Header')->item(0);
     $authenticationLevel = $originalMsgId = $headerNode->getElementsByTagName('SIF_MsgId')->item(0)->nodeValue;
     $originalSourceId = $headerNode->getElementsByTagName('SIF_SourceId')->item(0)->nodeValue;
     if ($headerNode->getElementsByTagName('SIF_Timestamp')->item(0)) {
         $originalTimestamp = $headerNode->getElementsByTagName('SIF_Timestamp')->item(0)->nodeValue;
     } else {
         $originalTimestamp = Utility::createTimestamp();
     }
     $version = $_SESSION['ZONE_VERSION'];
     $buffer = $dom->getElementsByTagName('SIF_MaxBufferSize')->item(0)->nodeValue;
     $mode = $dom->getElementsByTagName('SIF_Mode')->item(0)->nodeValue;
     if ($dom->getElementsByTagName('SIF_Protocol')->item(0)) {
         $protocolType = $dom->getElementsByTagName('SIF_Protocol')->item(0)->attributes->item(0)->nodeValue;
         $protocolSecure = $dom->getElementsByTagName('SIF_Protocol')->item(0)->attributes->item(1)->nodeValue;
     }
     if ($dom->getElementsByTagName('SIF_URL')->item(0)) {
         $callBackUrl = $dom->getElementsByTagName('SIF_URL')->item(0)->nodeValue;
     }
     $validSourceId = Agent::checkSourceId($originalSourceId);
     if (!$validSourceId) {
         RegisterError::invalidSourceId($agent->sourceId, $originalMsgId);
     } else {
         //create agent object
         $agent = new Agent($originalSourceId);
         if (!Agent::allowedToRegister($agent->agentId)) {
             RegisterError::genericError($agent->sourceId, $originalMsgId);
         } else {
             /*				if($version != ZIT::checkVersion($version)){
             					RegisterError::invalidVersion($agent->sourceId, $originalMsgId);
             				}
             				else{
             */
             if ($buffer < ZIT::getMinBuffer()) {
                 RegisterError::invalidMaxBuffer($agent->sourceId, $originalMsgId);
             } else {
                 $empty = null;
                 $agent->authenticationLevel = $this->getSecurityLevel();
                 $agent->maxBuffersize = $buffer;
                 $agent->protocol = isset($protocolType) ? $protocolType : $empty;
                 $agent->callBackUrl = isset($callBackUrl) ? urlencode($callBackUrl) : $empty;
                 $agent->agentMode = Agent::convertAgentMode(isset($mode) ? $mode : $empty);
                 $agent->secure = Agent::convertSecure(isset($protocolSecure) ? $protocolSecure : $empty);
                 $agent->version = $version;
                 if ($agent->isRegistered()) {
                     if ($agent->updateRegistration()) {
                         $this->createAclAckMessage($agent->sourceId, $originalMsgId);
                     } else {
                         RegisterError::genericError($agent->sourceId, $originalMsgId, 'Error Registering Agent at agent->updateRegistration()');
                     }
                     //try to update registration
                 } else {
                     if ($agent->register()) {
                         $this->createAclAckMessage($agent->sourceId, $originalMsgId);
                     } else {
                         RegisterError::genericError($agent->sourceId, $originalMsgId, 'Error Registering Agent at agent->register()');
                     }
                     //try to register
                 }
                 //check if agent is registered
             }
             //check if buffer size is valid
             //				}//check if version is valid
         }
         //check if agent allowed to register
     }
     //check if sourceId is valid
 }
Example #2
0
 private function processZoneStatus()
 {
     $dom = $this->xmlDom;
     $headerNode = $dom->getElementsByTagName('SIF_Header')->item(0);
     $originalSourceId = $headerNode->getElementsByTagName('SIF_SourceId')->item(0)->nodeValue;
     $originalMsgId = $headerNode->getElementsByTagName('SIF_MsgId')->item(0)->nodeValue;
     $validSourceId = Agent::checkSourceId($originalSourceId);
     if (!$validSourceId) {
         RegisterError::invalidSourceId($originalSourceId, $originalMsgId);
     } else {
         $dom = new DOMDocument('1.0', 'iso-8859-1');
         $zoneStatusNode = $dom->createElement('SIF_ZoneStatus');
         $zoneStatusNode->setAttribute('ZoneId', $_SESSION['ZONE_NAME']);
         $dom->appendChild($zoneStatusNode);
         $zoneNameNode = $dom->createElement('SIF_Name');
         $zoneNameNode->appendChild($dom->createTextNode($_SESSION['ZONE_DESC']));
         $zoneStatusNode->appendChild($zoneNameNode);
         $sifVendorNode = $dom->createElement('SIF_Vendor');
         $sifVendorName = $dom->createElement('SIF_Name');
         $sifVendorName->appendChild($dom->createTextNode(VENDOR_NAME));
         $sifVendorNode->appendChild($sifVendorName);
         $sifVendorProduct = $dom->createElement('SIF_Product');
         $sifVendorProduct->appendChild($dom->createTextNode(VENDOR_PRODUCT));
         $sifVendorNode->appendChild($sifVendorProduct);
         $sifVendorVersion = $dom->createElement('SIF_Version');
         $sifVendorVersion->appendChild($dom->createTextNode(VENDOR_VERSION));
         $sifVendorNode->appendChild($sifVendorVersion);
         $zoneStatusNode->appendChild($sifVendorNode);
         $sifProvidersNode = $dom->createElement('SIF_Providers');
         $sifProvidersNode = $this->buildProviders($sifProvidersNode, $dom);
         $zoneStatusNode->appendChild($sifProvidersNode);
         $sifSubscribersNode = $dom->createElement('SIF_Subscribers');
         $sifSubscribersNode = $this->buildSubscribers($sifSubscribersNode, $dom);
         $zoneStatusNode->appendChild($sifSubscribersNode);
         $sifNodes = $dom->createElement('SIF_SIFNodes');
         $sifSubscribersNode = $this->buildNodeList($sifNodes, $dom);
         $zoneStatusNode->appendChild($sifNodes);
         /*$sifSupportedAuth = $dom->createElement('SIF_SupportedAuthentication');
         		$sifProtocolName  = $dom->createElement('SIF_ProtocolName');
         		$sifSupportedAuth->appendChild($sifProtocolName);
         		$zoneStatusNode->appendChild($sifSupportedAuth);*/
         $sifSupportedProtocols = $dom->createElement('SIF_SupportedProtocols');
         $sifProtocol = $dom->createElement('SIF_Protocol');
         $sifProtocol->setAttribute('Type', 'HTTP');
         $sifProtocol->setAttribute('Secure', 'No');
         $sifUrl = $dom->createElement('SIF_URL');
         $sifUrl->appendChild($dom->createTextNode(ZIT::getZitUrl()));
         $sifProtocol->appendChild($sifUrl);
         $sifSupportedProtocols->appendChild($sifProtocol);
         $zoneStatusNode->appendChild($sifSupportedProtocols);
         $sifSupportedVersions = $dom->createElement('SIF_SupportedVersions');
         $versions = ZIT::getVersions();
         foreach ($versions as $version) {
             $sifVersion = $dom->createElement('SIF_Version');
             $sifVersion->appendChild($dom->createTextNode($version['VERSION']));
             $sifSupportedVersions->appendChild($sifVersion);
         }
         $zoneStatusNode->appendChild($sifSupportedVersions);
         $sifAdminUrl = $dom->createElement('SIF_AdministrationURL');
         $sifAdminUrl->appendChild($dom->createTextNode(ZIT::getAdminUrl()));
         $zoneStatusNode->appendChild($sifAdminUrl);
         $sifContexts = $dom->createElement('SIF_Contexts');
         $sifContexts = $this->buildContexts($sifContexts, $dom);
         $zoneStatusNode->appendChild($sifContexts);
         $xml = $dom->saveXML($dom->documentElement);
         $msgId = Utility::createMessageId();
         $timestamp = Utility::createTimestamp();
         XmlHelper::buildSuccessMessage($msgId, $timestamp, $originalSourceId, $originalMsgId, 0, $originalMsg = $xml, $desc = null);
     }
 }