Vagrant: Add authentication.ini and resources.ini to /etc/icingaweb

refs #5638
This commit is contained in:
Eric Lippmann 2014-02-21 10:16:16 +01:00
parent af342d6b3a
commit 25665dec24
5 changed files with 85 additions and 3 deletions

View File

@ -0,0 +1,11 @@
[internal_ldap_authentication]
backend = ldap
resource = internal_ldap
; Object class of the user
user_class = inetOrgPerson
; ; Attribute name for username
user_name_attribute = uid
[internal_db_authentication]
backend = db
resource = "internal_db"

View File

@ -0,0 +1,34 @@
[internal_db]
type = db
db = mysql
host = localhost
port = 3306
password = icingaweb
username = icingaweb
dbname = icingaweb
[ido]
type = db
db = mysql
host = localhost
port = 3306
password = icinga
username = icinga
dbname = icinga
[statusdat]
type = statusdat
status_file = /usr/local/icinga-mysql/var/status.dat
object_file = /usr/local/icinga-mysql/var/objects.cache
[livestatus]
type = livestatus
socket = /usr/local/icinga-mysql/var/rw/live
[internal_ldap]
type = ldap
hostname = localhost
port = 389
root_dn = "ou=people, dc=icinga, dc=org"
bind_dn = "cn=admin,cn=config"
bind_pw = admin

View File

@ -617,3 +617,23 @@ file { '/etc/httpd/conf.d/icingaweb.conf':
require => Package['apache'],
notify => Service['apache']
}
file { '/etc/icingaweb':
ensure => 'directory',
owner => 'apache',
group => 'apache'
}
file { '/etc/icingaweb/authentication.ini':
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icingaweb/authentication.ini',
owner => 'apache',
group => 'apache',
require => File['/etc/icingaweb']
}
file { '/etc/icingaweb/resources.ini':
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icingaweb/resources.ini',
owner => 'apache',
group => 'apache',
require => File['/etc/icingaweb']
}

View File

@ -37,6 +37,7 @@ use Icinga\Data\ResourceFactory;
use Icinga\Application\Logger;
use Icinga\Exception\ConfigurationError;
use Icinga\Exception\NotReadableError;
use Icinga\Exception\ProgrammingError;
use Icinga\Application\Config as IcingaConfig;
use Icinga\Authentication\Backend\DbUserBackend;
use Icinga\Authentication\Backend\LdapUserBackend;
@ -149,7 +150,21 @@ class Manager
}
return new $backendConfig->class($backendConfig);
}
if (($type = ResourceFactory::getResourceConfig($backendConfig->resource)->type) === null) {
if ($backendConfig->resource === null) {
throw new ConfigurationError(
'Authentication configuration for backend "' . $backendConfig->name
. '" is missing the resource directive'
);
}
try {
$type = ResourceFactory::getResourceConfig($backendConfig->resource)->type;
} catch (ProgrammingError $e) {
throw new ConfigurationError(
'No authentication methods available. It seems that none resources have been set up. '
. ' Please contact your Icinga Web administrator'
);
}
if ($type === null) {
throw new ConfigurationError(
'Authentication configuration for backend "%s" is missing the type directive',
$backendConfig->name,

View File

@ -53,7 +53,7 @@ class ResourceFactory implements ConfigAwareFactory
/**
* Get the configuration for a specific resource
*
* @param $resourceName String The resources name
* @param $resourceName String The resource's name
*
* @return Zend_Config The configuration of the resource
* @throws \Icinga\Exception\ConfigurationError
@ -62,7 +62,9 @@ class ResourceFactory implements ConfigAwareFactory
{
self::assertResourcesExist();
if (($resourceConfig = self::$resources->get($resourceName)) === null) {
throw new ConfigurationError('Resource "' . $resourceName . '" couldn\'t be retrieved');
throw new ConfigurationError(
'Cannot load resource config "' . $resourceName . '". Resource does not exist'
);
}
return $resourceConfig;
}