Exemple #1
0
 public static function get_instance()
 {
     if (is_null(self::$obj)) {
         self::$obj = new Util_Nlog_NLogger();
     }
     return self::$obj;
 }
Exemple #2
0
 public function handle_request_internal()
 {
     $rec = json_decode($this->_params['log'], true);
     $logger = Util_Nlog_NLogger::get_instance();
     $log_force = APF::get_instance()->get_config('log_force', 'nlogger');
     foreach ($rec as $v) {
         $data = json_encode($v);
         $logger->log('action', $data, $log_force);
     }
     return array('status' => 'ok', 'data' => 'success');
 }
Exemple #3
0
 public function before()
 {
     $params = APF::get_instance()->get_request()->get_parameters();
     if ($params['doc'] == 1) {
         return self::STEP_CONTINUE;
     }
     $request_uri = isset($_SERVER['ORGINAL_REQUEST_URI']) ? $_SERVER['ORGINAL_REQUEST_URI'] : $_SERVER['REQUEST_URI'];
     $pos = strpos($request_uri, '?');
     if ($pos !== false) {
         $request_uri = str_replace("/mobile-ajk-broker", '', substr($request_uri, 0, $pos));
     } else {
         $request_uri = str_replace("/mobile-ajk-broker", '', $request_uri);
     }
     $app_key = $_SERVER['HTTP_KEY'];
     $shared_keys = APF::get_instance()->get_config('signature', 'mobile_api');
     $shared_key = $shared_keys[$app_key];
     $request_body = file_get_contents('php://input');
     // 先尝试使用新的方法验证签名
     $debug_nocheck_flag = APF::get_instance()->get_config('debug_nocheck_flag');
     $sig = $this->signature($request_uri, $_GET, $_POST, $request_body, $shared_key);
     //echo "<pre>";print_r($sig);exit;
     if ($sig == $_SERVER['HTTP_SIG'] || isset($params["is_nocheck"]) && $params["is_nocheck"] == 1 || $debug_nocheck_flag) {
         return self::STEP_CONTINUE;
     } else {
         apf_require_class('Util_Nlog_NLogger');
         $logger = Util_Nlog_NLogger::get_instance();
         $log_force = APF::get_instance()->get_config('log_force', 'nlogger');
         $data['HTTP_KEY'] = $app_key;
         $data['HTTP_SIG'] = $_SERVER['HTTP_SIG'];
         $data['sig_finalstr'] = $this->_sig_finalstr;
         $data['sig'] = $sig;
         $data['request_uri'] = $request_uri;
         $data['REQUEST_GET'] = $_GET;
         $data['REQUEST_POST'] = $_POST;
         $data['request_body'] = $request_body;
         $key = 'signatrue_' . date("Y-m-d H:i:s");
         $str = json_encode(array($key => $data));
         $logger->log('apierror', $str, $log_force);
     }
     echo json_encode(Util_MobileAPI::error(Const_APIStatus::E_SIG_INVALID));
     return self::STEP_EXIT;
 }