$this->Authentication = true;
                } else {
                    $this->Authentication = false;
                }
            } else {
                $this->Authentication = false;
            }
        } catch (Exception $e) {
            throw $e;
        }
    }
    /**
        This method validates if the timestamp is valid
        @access public
        @throws Exception object
        @return void
	*/
    public function validate_timestamp()
    {
        try {
            //Look for header timestamp
            if (!isset($this->Headers->{"X-Timestamp"}) || !is_numeric($this->Headers->{"X-Timestamp"})) {
                HttpHandler::header(400);
            }
            //Check if timestamp isn't expired
            $timediff = (int) (time() - $this->Headers->{"X-Timestamp"});
            if ($timediff >= $this->Application->config("service->request_timeout")) {
                HttpHandler::header(408);
            }
        } catch (Exception $e) {
            throw $e;
        }
    }
    /**
        This method authenticate the user
 /**
         Check authorization token
         @access public
         @throws Exception object
         @param array $param
         @return void
 */
 public function check_authorization_token($param = [])
 {
     try {
         $apiToken = explode(" ", $param["user_token"]);
         if ($apiToken[0] != Application::config("service->authorization_prefix")) {
             HttpHandler::header(401);
         }
         $apiToken[1] = $apiToken[1];
         $param["user_token"] = $apiToken[1];
         $result = $this->ApiDAO->check_authorization_token($param);
         if ($result->UserId == 0) {
             HttpHandler::header(401);
         } else {
             $param["user_id"] = $result->UserId;
             $param["add_datetime"] = Utility::get_datetime();
             $this->ApiDAO->insert_system_log($param);
             $result->ApiToken = $apiToken[1];
         }
         return $result;
     } catch (Exception $e) {
         throw $e;
     }
 }