Skip to content

Commit d3012cb

Browse files
committed
Change admin-authentication to use the 'admin' authentication source, if present.
git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@1470 44740490-163a-0410-bde0-09ae8108e29a
1 parent 45c7c7d commit d3012cb

2 files changed

Lines changed: 25 additions & 5 deletions

File tree

config-templates/authsources.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22

33
$config = array(
44

5+
/*
6+
* This is a authentication source which handles admin authentication.
7+
*/
8+
'admin' => array(
9+
/*
10+
* The default is to use core:AdminPassword, but it can be replaced with
11+
* any authentication source.
12+
*/
13+
'core:AdminPassword',
14+
),
15+
516
'example-sql' => array(
617
'sqlauth:SQL',
718
'dsn' => 'pgsql:host=sql.example.org;port=5432;dbname=simplesaml',

lib/SimpleSAML/Utilities.php

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1688,7 +1688,7 @@ public static function isAdmin() {
16881688

16891689
$session = SimpleSAML_Session::getInstance();
16901690

1691-
return $session->isValid('login-admin');
1691+
return $session->isValid('admin') || $session->isValid('login-admin');
16921692
}
16931693

16941694

@@ -1721,11 +1721,20 @@ public static function requireAdmin() {
17211721
return;
17221722
}
17231723

1724+
$returnTo = SimpleSAML_Utilities::selfURL();
1725+
17241726
/* Not authenticated as admin user. Start authentication. */
1725-
$config = SimpleSAML_Configuration::getInstance();
1726-
SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
1727-
array('RelayState' => SimpleSAML_Utilities::selfURL())
1728-
);
1727+
1728+
if (SimpleSAML_Auth_Source::getById('admin') !== NULL) {
1729+
SimpleSAML_Auth_Default::initLogin('admin', $returnTo);
1730+
} else {
1731+
/* For backwards-compatibility. */
1732+
1733+
$config = SimpleSAML_Configuration::getInstance();
1734+
SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
1735+
array('RelayState' => $returnTo)
1736+
);
1737+
}
17291738
}
17301739

17311740
}

0 commit comments

Comments
 (0)