/** * Validate message signature * * @param ListenerMessage $msg Message object to operate on * * @throws ListenerSecurityException on security violation */ protected function doMessageSecurity(ListenerMessage $msg) { $login = $this->c->val('login'); $secret = $this->c->val('secret'); $signed = $login . $msg->getSignedString(); $control = strtoupper(hash_hmac('sha256', pack('A*', $signed), pack('A*', $secret))); if ($control != $msg->getSignature()) { throw new ListenerSecurityException(); } return true; }
public function execute(ListenerMessage $msg) { $destinationQueue = $msg->getDestinationQueue(); if ($destinationQueue) { $queue = Context::get()->getConfiguration()->object("data-store/{$destinationQueue}"); $queueMsg = $msg->normalizeForQueue(); SourceFields::addToMessage($queueMsg); $queue->push($queueMsg); } else { $class = get_class($msg); Logger::warning("Ignoring message of type {$class}", $msg); } return true; }