public static function run(Request $pedido) { $controller = ucfirst($pedido->getController()); $caminho = ROOT . "controllers" . DS1 . $controller . DS1 . $controller . '.php'; // print $caminho; // die; $metodo = $pedido->getMetodo(); $parametro = $pedido->getParametros(); if (is_readable($caminho)) { require $caminho; $controlador = ucfirst($controller); $namespace = "\\" . "controllers" . "\\" . $controlador; $controller = new $namespace(); if (is_callable(array($controller, $metodo))) { $metodo = $pedido->getMetodo(); } else { $metodo = "index"; } if (isset($parametro)) { call_user_func_array(array($controller, $metodo), $parametro); } else { call_user_func(array($controller, $metodo)); } } else { header("Location:" . URL . "error"); } }
/** * Autoriza el servicio */ protected function _chequearKey() { $request = new Request(); $parametros = $request->getParametros(); $key_public = $this->_zend_request->getHeader("X-Public"); $hash_private = $this->_zend_request->getHeader("X-Hash"); $content = json_encode($parametros); $servicio = $this->_DAOService->getByPublicKey($key_public); if (!is_null($servicio)) { $hash = hash_hmac('sha256', $content, $servicio->key_private); if ($hash != $hash_private) { $this->_autorizado = false; } } else { $this->_autorizado = false; } }