Revert "Change setup behavior of the AuthenticationManager to a lazy approach"
This reverts commit 226eb4eded
.
Conflicts:
library/Icinga/Authentication/Manager.php
This fix is not appropriate
refs #5506
This commit is contained in:
parent
9cbfe88ea6
commit
d6768872c7
|
@ -87,13 +87,6 @@ class Manager
|
||||||
*/
|
*/
|
||||||
private $config = null;
|
private $config = null;
|
||||||
|
|
||||||
/**
|
|
||||||
* If the backends are already created.
|
|
||||||
*
|
|
||||||
* @var Boolean
|
|
||||||
*/
|
|
||||||
private $initialized = false;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new authentication manager using the provided config (or the
|
* Creates a new authentication manager using the provided config (or the
|
||||||
* configuration provided in the authentication.ini if no config is given)
|
* configuration provided in the authentication.ini if no config is given)
|
||||||
|
@ -110,7 +103,10 @@ class Manager
|
||||||
if ($config === null && !(isset($options['noDefaultConfig']) && $options['noDefaultConfig'] == true)) {
|
if ($config === null && !(isset($options['noDefaultConfig']) && $options['noDefaultConfig'] == true)) {
|
||||||
$config = IcingaConfig::app('authentication');
|
$config = IcingaConfig::app('authentication');
|
||||||
}
|
}
|
||||||
$this->config = $config;
|
|
||||||
|
if ($config !== null) {
|
||||||
|
$this->setupBackends($config);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -215,7 +211,6 @@ class Manager
|
||||||
*/
|
*/
|
||||||
public function getUserBackend($name)
|
public function getUserBackend($name)
|
||||||
{
|
{
|
||||||
$this->initBackends();
|
|
||||||
return (isset($this->userBackends[$name])) ? $this->userBackends[$name] : null;
|
return (isset($this->userBackends[$name])) ? $this->userBackends[$name] : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -238,7 +233,6 @@ class Manager
|
||||||
*/
|
*/
|
||||||
public function getGroupBackend($name)
|
public function getGroupBackend($name)
|
||||||
{
|
{
|
||||||
$this->initBackends();
|
|
||||||
return (isset($this->groupBackends[$name])) ? $this->groupBackends[$name] : null;
|
return (isset($this->groupBackends[$name])) ? $this->groupBackends[$name] : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,9 +246,8 @@ class Manager
|
||||||
*/
|
*/
|
||||||
private function getBackendForCredential(Credential $credentials)
|
private function getBackendForCredential(Credential $credentials)
|
||||||
{
|
{
|
||||||
$this->initBackends();
|
|
||||||
|
|
||||||
$authErrors = 0;
|
$authErrors = 0;
|
||||||
|
|
||||||
foreach ($this->userBackends as $userBackend) {
|
foreach ($this->userBackends as $userBackend) {
|
||||||
|
|
||||||
$flag = false;
|
$flag = false;
|
||||||
|
@ -298,17 +291,6 @@ class Manager
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Ensures that all backends are initialized
|
|
||||||
*/
|
|
||||||
private function initBackends()
|
|
||||||
{
|
|
||||||
if (!$this->initialized) {
|
|
||||||
$this->setupBackends($this->config);
|
|
||||||
$this->initialized = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Try to authenticate a user with the given credentials
|
* Try to authenticate a user with the given credentials
|
||||||
*
|
*
|
||||||
|
@ -320,13 +302,12 @@ class Manager
|
||||||
*/
|
*/
|
||||||
public function authenticate(Credential $credentials, $persist = true)
|
public function authenticate(Credential $credentials, $persist = true)
|
||||||
{
|
{
|
||||||
$this->initBackends();
|
|
||||||
if (count($this->userBackends) === 0) {
|
if (count($this->userBackends) === 0) {
|
||||||
Logger::error('AuthManager: No authentication backend provided, your users will never be able to login.');
|
Logger::error('AuthManager: No authentication backend provided, your users will never be able to login.');
|
||||||
throw new ConfigurationError(
|
throw new ConfigurationError(
|
||||||
'No authentication backend set - login will never succeed as icinga-web ' .
|
'No authentication backend set - login will never succeed as icinga-web'
|
||||||
'doesn\'t know how to determine your user. ' . "\n" .
|
. ' doesn\'t know how to determine your user. ' . "\n"
|
||||||
'To fix this error, setup your authentication.ini with at least one valid authentication backend.'
|
. ' To fix this error, setup your authentication.ini with at least one valid authentication backend.'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue