diff options
author | Paul 'flowerysong' Arthur <flowerysong00@yahoo.com> | 2010-03-14 03:40:47 +0000 |
---|---|---|
committer | Paul 'flowerysong' Arthur <flowerysong00@yahoo.com> | 2010-03-14 03:40:47 +0000 |
commit | 9a872491dd3d5846b772bdf2dc93873b7e8a688a (patch) | |
tree | 6aa083a3b085aac82d55120e84e7bb2e0000eb71 /login.php | |
parent | 1b57e267e030c5463baab4136be66232a123d3a5 (diff) | |
download | ampache-9a872491dd3d5846b772bdf2dc93873b7e8a688a.tar.gz ampache-9a872491dd3d5846b772bdf2dc93873b7e8a688a.tar.bz2 ampache-9a872491dd3d5846b772bdf2dc93873b7e8a688a.zip |
Unbreak http auth, make it more sane. Old broken method renamed to null, in
case crazy people still want it. Add support for redirecting to a SSO
provider after logout.
Diffstat (limited to 'login.php')
-rw-r--r-- | login.php | 18 |
1 files changed, 16 insertions, 2 deletions
@@ -45,8 +45,11 @@ if (Config::get('access_control')) { /* Clean Auth values */ unset($auth); -/* Check for posted username and password */ -if ($_POST['username'] && $_POST['password']) { +/* Check for posted username and password, or appropriate environment +variable if using HTTP auth */ +if (($_POST['username'] && $_POST['password']) || +(in_array('http',Config::get('auth_methods')) && +($_SERVER['REMOTE_USER'] || $_SERVER['HTTP_REMOTE_USER']))) { if ($_POST['rememberme']) { vauth::create_remember_cookie(); @@ -60,8 +63,19 @@ if ($_POST['username'] && $_POST['password']) { $auth['info']['offset_limit'] = 25; } else { + if ($_POST['username'] && $_POST['password']) { $username = scrub_in($_POST['username']); $password = scrub_in($_POST['password']); + } + else { + if ($_SERVER['REMOTE_USER']) { + $username = $_SERVER['REMOTE_USER']; + } + else if ($_SERVER['HTTP_REMOTE_USER']) { + $username = $_SERVER['HTTP_REMOTE_USER']; + } + $password = ''; + } $auth = vauth::authenticate($username, $password); $user = User::get_from_username($username); |