diff --git a/application/loginbasic.class.inc.php b/application/loginbasic.class.inc.php index 6460dad92..9f56aaf88 100644 --- a/application/loginbasic.class.inc.php +++ b/application/loginbasic.class.inc.php @@ -26,6 +26,10 @@ class LoginBasic extends AbstractLoginFSMExtension { $_SESSION['login_mode'] = 'basic'; } + elseif (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION']) && !empty($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) + { + $_SESSION['login_mode'] = 'basic'; + } elseif (isset($_SERVER['PHP_AUTH_USER'])) { $_SESSION['login_mode'] = 'basic'; @@ -92,9 +96,19 @@ class LoginBasic extends AbstractLoginFSMExtension { $sAuthUser = ''; $sAuthPwd = null; + $sAuthorization = ''; if (isset($_SERVER['HTTP_AUTHORIZATION']) && !empty($_SERVER['HTTP_AUTHORIZATION'])) { - list($sAuthUser, $sAuthPwd) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); + $sAuthorization = $_SERVER['HTTP_AUTHORIZATION']; + } + elseif (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION']) && !empty($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) + { + $sAuthorization = $_SERVER['REDIRECT_HTTP_AUTHORIZATION']; + } + + if (!empty($sAuthorization)) + { + list($sAuthUser, $sAuthPwd) = explode(':', base64_decode(substr($sAuthorization, 6))); } else { @@ -121,4 +135,4 @@ class LoginBasic extends AbstractLoginFSMExtension } return array($sAuthUser, $sAuthPwd); } -} \ No newline at end of file +}