Example #1
0
 protected static function send_response($is_pps_mode, $content_type, $content, $gzippable = true)
 {
     header('Content-Type: ' . $content_type);
     if (config::get_kern('send_x_powered_by', true)) {
         header('X-Powered-By: swap-' . version);
     }
     if ($is_pps_mode) {
         if (config::get_module('view.cache_pps_in_client', false)) {
             header('Cache-Control: max-age=2592000');
         } else {
             header('Cache-Control: max-age=0');
         }
     }
     if (self::$log_execute_time) {
         $execute_time = microtime(true) - self::$begin_microtime;
         header('X-Execute-Time: ' . substr($execute_time * 1000, 0, 5) . ' ms');
     }
     if ($gzippable && extension_loaded('zlib') && !ini_get('zlib.output_compression')) {
         ob_start('ob_gzhandler');
     } else {
         ob_start();
     }
     echo $content;
     ob_end_flush();
     if (self::$is_debug) {
         debug::save_required_files();
     }
 }
Example #2
0
File: pps.php Project: xpd1437/swap
 protected static function render_pjs_for(target $target)
 {
     parent::use_viewlet('pjs');
     ob_start();
     self::do_render_in(view_dir, 'pjs', $target);
     $pjs = ob_get_clean();
     if (config::get_module('view.minify_pps', false)) {
         $pjs = self::minify_pjs($pjs);
     }
     return $pjs;
 }
Example #3
0
 public static function __init__()
 {
     // @todo: lazy initialization?
     self::$prefix = visitor::get_prefix();
     self::$static_domain = config::get_kern('static_domain', '');
     self::$upload_domain = config::get_kern('upload_domain', '');
     self::$version_key = config::get_kern('version_key', self::default_version_key);
     self::$version = config::get_kern('version', self::default_version);
     self::$base_is_https = config::get_base('url.is_https', false);
     self::$base_domains = config::get_base('url.domains', []);
     foreach (self::$base_domains as $domain) {
         # base 模块的 module_name 统一为 'base'
         self::$domain_modules[$domain] = 'base';
     }
     self::$base_enable_rewrite = config::get_base('url.enable_rewrite', false);
     self::$base_csrf_key = config::get_base('url.csrf_key', self::default_csrf_key);
     self::$base_target_key = config::get_base('url.target_key', self::default_target_key);
     self::$base_routes = config::get_base('url.routes', []);
     self::$base_flipped_routes = array_flip(self::$base_routes);
     foreach (config::get_module_names() as $module_name) {
         config::set_module_name($module_name);
         self::$module_is_https[$module_name] = config::get_module('url.is_https', false);
         $domains = config::get_module('url.domains', []);
         self::$module_domains[$module_name] = $domains;
         foreach ($domains as $domain) {
             self::$domain_modules[$domain] = $module_name;
         }
         self::$module_enable_rewrites[$module_name] = config::get_module('url.enable_rewrite', false);
         self::$module_csrf_keys[$module_name] = config::get_module('url.csrf_key', self::default_csrf_key);
         self::$module_target_keys[$module_name] = config::get_module('url.target_key', self::default_target_key);
         self::$module_routes[$module_name] = config::get_module('url.routes', []);
         self::$module_flipped_routes[$module_name] = array_flip(self::$module_routes[$module_name]);
     }
     # 实际是哪个 module_name 需要解析
     config::set_module_name(null);
 }
Example #4
0
 public static function set_target(target $target)
 {
     self::$configs = config::get_module('visitor', ['cookie_domain' => '', 'roles' => []]);
     self::$request['gets'] = array_merge(self::$request['gets'], $target->get_params());
     self::$request['target'] = $target;
 }
Example #5
0
File: php.php Project: xpd1437/swap
 public static function csrf($csrf_role)
 {
     if (visitor::has_role($csrf_role)) {
         $csrf_key = config::get_module('url.csrf_key', router::default_csrf_key);
         $role_secret = null;
         if (visitor::p_has($csrf_key)) {
             $role_secret = visitor::p_str($csrf_key);
         } else {
             if (visitor::g_has($csrf_key)) {
                 $role_secret = visitor::g_str($csrf_key);
             }
         }
         if ($role_secret !== visitor::get_role_secret($csrf_role)) {
             throw new visitor_except('csrf attack', 403);
         }
     }
 }
Example #6
0
 public static function __init__()
 {
     self::$role_configs = config::get_module('visitor.roles', []);
 }