function translateServer($serverName) { // use SSL if forced on proxy or original request was using SSL $protocol = "http" . ($this->forceSSL || usingSslFromUserToWorkbench() ? "s" : ""); $port = $this->port == "" ? "" : ":" . $this->port; return $protocol . "://" . $serverName . $port; }
private function oauthBuildRedirectUrl() { return "http" . (usingSslFromUserToWorkbench() ? "s" : "") . "://" . WorkbenchConfig::get()->valueOrElse("oauthRedirectHost", $_SERVER['HTTP_HOST']) . str_replace('\\', '/', dirname(htmlspecialchars($_SERVER['PHP_SELF']))) . (strlen(dirname(htmlspecialchars($_SERVER['PHP_SELF']))) == 1 ? "" : "/") . basename($_SERVER['SCRIPT_NAME']); }
function getStreamingConfig() { $streamingConfig["handshakeOnLoad"] = true; // TODO: make this configurable $streamingConfig["csrfToken"] = getCsrfToken(); // configs in "$streamingConfig["cometdConfig"]" are loaded into CometD in JS and need to match their format $streamingConfig["cometdConfig"]["logLevel"] = "info"; $streamingConfig["cometdConfig"]["appendMessageTypeToURL"] = false; $streamingConfig["cometdConfig"]["advice"]["timeout"] = (int) WorkbenchConfig::get()->valueOrElse("streamingAdviceTimeout", 25000); $streamingConfig["cometdConfig"]["advice"]["interval"] = 0; $streamingConfig["cometdConfig"]["advice"]["reconnect"] = "retry"; $streamingConfig["cometdConfig"]["url"] = "http" . (usingSslFromUserToWorkbench() ? "s" : "") . "://" . $_SERVER['HTTP_HOST'] . str_replace('\\', '/', dirname(htmlspecialchars($_SERVER['PHP_SELF']))) . (strlen(dirname(htmlspecialchars($_SERVER['PHP_SELF']))) == 1 ? "" : "/") . "cometdProxy.php"; return json_encode($streamingConfig); }
} $sessionStore = WorkbenchConfig::get()->value("sessionStore"); // If $sessionStore starts with redis://, convert to format for Redis extension and set as the session save handler // IN: redis://user:pass@host:port/ // OUT: tcp://host:port?auth=pass if (strpos($sessionStore, "redis://") === 0) { $redisUrl = "tcp://" . parse_url($sessionStore, PHP_URL_HOST) . ":" . parse_url($sessionStore, PHP_URL_PORT); if (!is_array(parse_url($sessionStore, PHP_URL_PASS))) { $redisUrl .= "?auth=" . parse_url($sessionStore, PHP_URL_PASS); } ini_set("session.save_path", $redisUrl); ini_set("session.save_handler", "redis"); } ini_set("session.cookie_httponly", "1"); session_start(); if (WorkbenchConfig::get()->value("redirectToHTTPS") && !usingSslFromUserToWorkbench()) { header("Location: " . "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); exit; } workbenchLog(LOG_INFO, "U", $logTail); if (WorkbenchContext::isEstablished()) { WorkbenchContext::get()->beginRequestHook(); } //clear ResultsWithData and retrievedZips from session unless downloading them if (isset($_SESSION['resultsWithData']) && basename($_SERVER['PHP_SELF']) != 'downloadResultsWithData.php') { unset($_SESSION['resultsWithData']); } if (isset($_SESSION['retrievedZips']) && basename($_SERVER['PHP_SELF']) != 'metadataStatus.php') { unset($_SESSION['retrievedZips']); } if (WorkbenchContext::isEstablished() && isset($_REQUEST['clearCache'])) {
function usingSslEndToEnd() { return usingSslFromUserToWorkbench() && usingSslFromWorkbenchToSfdc(); }