/** * Modify the given request XML. * * @param \BeSimple\SoapCommon\SoapRequest $request SOAP request * * @return void */ public function filterRequest(CommonSoapRequest $request) { // get \DOMDocument from SOAP request $dom = $request->getContentDocument(); // create FilterHelper $filterHelper = new FilterHelper($dom); // add the neccessary namespaces $filterHelper->addNamespace(Helper::PFX_WSA, Helper::NS_WSA); $action = $filterHelper->createElement(Helper::NS_WSA, 'Action', $request->getAction()); $filterHelper->addHeaderElement($action); $to = $filterHelper->createElement(Helper::NS_WSA, 'To', $request->getLocation()); $filterHelper->addHeaderElement($to); if (null !== $this->faultTo) { $faultTo = $filterHelper->createElement(Helper::NS_WSA, 'FaultTo'); $filterHelper->addHeaderElement($faultTo); $address = $filterHelper->createElement(Helper::NS_WSA, 'Address', $this->faultTo); $faultTo->appendChild($address); } if (null !== $this->from) { $from = $filterHelper->createElement(Helper::NS_WSA, 'From'); $filterHelper->addHeaderElement($from); $address = $filterHelper->createElement(Helper::NS_WSA, 'Address', $this->from); $from->appendChild($address); } if (null !== $this->messageId) { $messageId = $filterHelper->createElement(Helper::NS_WSA, 'MessageID', $this->messageId); $filterHelper->addHeaderElement($messageId); } if (null !== $this->relatesTo) { $relatesTo = $filterHelper->createElement(Helper::NS_WSA, 'RelatesTo', $this->relatesTo); if (null !== $this->relatesToRelationshipType) { $filterHelper->setAttribute($relatesTo, Helper::NS_WSA, 'RelationshipType', $this->relatesToRelationshipType); } $filterHelper->addHeaderElement($relatesTo); } if (null !== $this->replyTo) { $replyTo = $filterHelper->createElement(Helper::NS_WSA, 'ReplyTo'); $filterHelper->addHeaderElement($replyTo); $address = $filterHelper->createElement(Helper::NS_WSA, 'Address', $this->replyTo); $replyTo->appendChild($address); } foreach ($this->referenceParametersSet as $rp) { $filterHelper->addNamespace($rp['pfx'], $rp['ns']); $parameter = $filterHelper->createElement($rp['ns'], $rp['parameter'], $rp['value']); $filterHelper->setAttribute($parameter, Helper::NS_WSA, 'IsReferenceParameter', 'true'); $filterHelper->addHeaderElement($parameter); } }