/** * @param string $filePath * @param \Symfony\Component\HttpFoundation\ServerBag $server * * @return bool */ private function authenticate($filePath, ServerBag $server) { $passFile = $this->kernel->getRootDir() . '/../web/var/export/' . substr($filePath, 0, strrpos($filePath, '/')) . '/.htpasswd'; list($auth['user'], $auth['pass']) = explode(':', file_get_contents($passFile)); $user = $server->get('PHP_AUTH_USER'); $pass = crypt($server->get('PHP_AUTH_PW'), md5($server->get('PHP_AUTH_PW'))); return $user == $auth['user'] && $pass == $auth['pass']; }
function it_does_not_provides_server_version_of_pim_host_if_request_is_null($requestStack, $versionProvider, ServerBag $serverBag) { $versionProvider->getPatch()->willReturn('1.4.0'); $versionProvider->getEdition()->willReturn('CE'); $requestStack->getCurrentRequest()->willReturn(null); $serverBag->get(Argument::type('string'))->shouldNotBeCalled(); $this->collect()->shouldReturn(['pim_edition' => 'CE', 'pim_version' => '1.4.0', 'pim_environment' => 'prod', 'pim_install_time' => '2015-09-16T10:10:32+02:00', 'server_version' => '']); }
/** * information about case sensitivity: * @link http://stackoverflow.com/questions/7718476/are-http-headers-content-type-c-case-sensitive * @return array */ private function getHeaders() { $headers = []; foreach ($this->serverBag->getHeaders() as $key => $value) { $key = str_replace(' ', '-', str_replace('_', ' ', $key)); $headers[] = '-H \'' . $key . ': ' . $value . '\''; } return $headers; }
/** * Method to get the system information * * @return string[] */ public function get() { $server = new ServerBag($GLOBALS['_SERVER']); $info = []; $info['php'] = php_uname(); if ($pdo = App::db()->getWrappedConnection() and $pdo instanceof PDOConnection) { $info['dbdriver'] = $pdo->getAttribute(\PDO::ATTR_DRIVER_NAME); $info['dbversion'] = $pdo->getAttribute(\PDO::ATTR_SERVER_VERSION); $info['dbclient'] = $pdo->getAttribute(\PDO::ATTR_CLIENT_VERSION); } $info['phpversion'] = phpversion(); $info['server'] = $server->get('SERVER_SOFTWARE', getenv('SERVER_SOFTWARE')); $info['sapi_name'] = php_sapi_name(); $info['version'] = App::version(); $info['useragent'] = $server->get('HTTP_USER_AGENT'); $info['extensions'] = implode(", ", get_loaded_extensions()); $info['directories'] = $this->getDirectories(); return $info; }
public function testHttpBasicAuthWithPhpCgiEmptyPassword() { $bag = new ServerBag(array('HTTP_AUTHORIZATION' => 'Basic '.base64_encode('foo:'))); $this->assertEquals(array( 'AUTHORIZATION' => 'Basic '.base64_encode('foo:'), 'PHP_AUTH_USER' => 'foo', 'PHP_AUTH_PW' => '' ), $bag->getHeaders()); }
/** * Parst den ACCEPT-LANGUAGE Header des Browsers * und gibt die präferierten Sprachen zurück * * @return array */ public function parseAcceptLanguage() { $locales = []; if ($this->server->has('HTTP_ACCEPT_LANGUAGE')) { $matches = []; preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\\s*(;\\s*q\\s*=\\s*(1|0\\.[0-9]+))?/i', $this->server->get('HTTP_ACCEPT_LANGUAGE'), $matches); if (!empty($matches[1])) { $locales = array_combine($matches[1], $matches[4]); // Für Einträge ohne q-Faktor, Wert auf 1 setzen foreach ($locales as $locale => $val) { if ($val === '') { $locales[$locale] = 1; } } // Liste nach Sprachpräferenz sortieren arsort($locales, SORT_NUMERIC); } } return $locales; }
/** * Prepares the base path. * * @return string base path */ protected function prepareBasePath() { $filename = basename($this->server->get('SCRIPT_FILENAME')); $baseUrl = $this->getBaseUrl(); if (empty($baseUrl)) { return ''; } if (basename($baseUrl) === $filename) { $basePath = dirname($baseUrl); } else { $basePath = $baseUrl; } if ('\\' === DIRECTORY_SEPARATOR) { $basePath = str_replace('\\', '/', $basePath); } return rtrim($basePath, '/'); }
private function isFromTrustedProxy() { return self::$trustedProxies && IpUtils::checkIp($this->server->get('REMOTE_ADDR'), self::$trustedProxies); }
public function testHttpPasswordIsOptional() { $bag = new ServerBag(array('PHP_AUTH_USER' => 'foo')); $this->assertEquals(array('AUTHORIZATION' => 'Basic ' . base64_encode('foo:')), $bag->getHeaders()); }
public function testOAuthBearerAuth() { $headerContent = 'Bearer L-yLEOr9zhmUYRkzN1jwwxwQ-PBNiKDc8dgfB4hTfvo'; $bag = new ServerBag(array('HTTP_AUTHORIZATION' => $headerContent)); $this->assertEquals(array('AUTHORIZATION' => $headerContent), $bag->getHeaders()); }
/** * @see https://github.com/symfony/symfony/issues/17345 */ public function testItDoesNotOverwriteTheAuthorizationHeaderIfItIsAlreadySet() { $headerContent = 'Bearer L-yLEOr9zhmUYRkzN1jwwxwQ-PBNiKDc8dgfB4hTfvo'; $bag = new ServerBag(array('PHP_AUTH_USER' => 'foo', 'HTTP_AUTHORIZATION' => $headerContent)); $this->assertEquals(array('AUTHORIZATION' => $headerContent, 'PHP_AUTH_USER' => 'foo', 'PHP_AUTH_PW' => ''), $bag->getHeaders()); }
/** * Gets the "real" request method. * * @return string The request method * * @see getMethod */ public function getRealMethod() { return strtoupper($this->server->get('REQUEST_METHOD', 'GET')); }
public function testShouldExtractHeadersFromServerArray() { $server = array('SOME_SERVER_VARIABLE' => 'value', 'SOME_SERVER_VARIABLE2' => 'value', 'ROOT' => 'value', 'HTTP_CONTENT_TYPE' => 'text/html', 'HTTP_CONTENT_LENGTH' => '0', 'HTTP_ETAG' => 'asdf'); $bag = new ServerBag($server); $this->assertEquals(array('CONTENT_TYPE' => 'text/html', 'CONTENT_LENGTH' => '0', 'ETAG' => 'asdf'), $bag->getHeaders()); }