1 system_test.module system_test_basic_auth_page()

Check HTTP headers for authentication.

Return value

string: The username and password passed in through web authentication.

File

core/modules/simpletest/tests/system_test.module, line 185
Test module for system functions.

Code

function system_test_basic_auth_page() {
  // The Authorization HTTP header is forwarded via Backdrop's .htaccess file even
  // for PHP CGI SAPIs.
  if (isset($_SERVER['HTTP_AUTHORIZATION'])) {
    $authorization_header = $_SERVER['HTTP_AUTHORIZATION'];
  }
  // If using CGI on Apache with mod_rewrite, the forwarded HTTP header appears
  // in the redirected HTTP headers. See
  // https://github.com/symfony/symfony/blob/HEAD/src/Symfony/Component/HttpFoundation/ServerBag.php#L61
  elseif (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
    $authorization_header = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
  }
  // Resemble PHP_AUTH_USER and PHP_AUTH_PW for a Basic authentication from
  // the HTTP_AUTHORIZATION header. See
  // http://www.php.net/manual/features.http-auth.php
  list($user, $pw) = explode(':', base64_decode(substr($authorization_header, 6)));
  $output = format_string('Username is @username.', array('@username' => $_SERVER['PHP_AUTH_USER']));
  $output .= format_string('Password is @password.', array('@password' => $_SERVER['PHP_AUTH_PW']));
  return $output;
}