From 6ce8843c3fad246c4ee82c5a9d30864b1f10d652 Mon Sep 17 00:00:00 2001 From: Guillaume Rousse <guillaume.rousse@renater.fr> Date: Fri, 2 Mar 2018 12:19:53 +0100 Subject: [PATCH] add multiple early configuration sanity checks --- bin/account-manager.cgi.in | 10 ++++++++++ conf/manager.conf.in | 2 +- lib/AccountManager/App.pm | 10 ++++------ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/bin/account-manager.cgi.in b/bin/account-manager.cgi.in index 75c0d21..577d25c 100755 --- a/bin/account-manager.cgi.in +++ b/bin/account-manager.cgi.in @@ -13,6 +13,16 @@ my $configuration_file = $ENV{ACCOUNTMANAGER_CONFIG} || '@sysconfdir@/manager.conf'; my $configuration = Config::Tiny->read($configuration_file); +# configuration sanity check +die "no database defined in configuration, aborting\n" + unless $configuration->{database}; +die "no mailer defined in configuration, aborting\n" + unless $configuration->{mailer}; +die "no idp defined in configuration, aborting\n" + unless $configuration->{idp}; +warn "no logger in configuration, logging disabled\n" + unless $configuration->{logger}; + my $app = AccountManager::App->new( configuration => $configuration ); diff --git a/conf/manager.conf.in b/conf/manager.conf.in index bdfcdab..ac2dd91 100644 --- a/conf/manager.conf.in +++ b/conf/manager.conf.in @@ -18,7 +18,7 @@ federation_metadata_file = @sysconfdir@/edugain-md.xml file = /opt/testidp/IdPAccountManager/log/manager.log level = info -[notifier) +[mailer] # path to sendmail executable sendmail_path = /usr/sbin/sendmail # from field use by the account manager diff --git a/lib/AccountManager/App.pm b/lib/AccountManager/App.pm index 65078b1..351dae9 100644 --- a/lib/AccountManager/App.pm +++ b/lib/AccountManager/App.pm @@ -44,11 +44,9 @@ sub new { if ($self->{configuration}->{logger}) { Log::Any::Adapter->set( 'File', - $self->{configuration}->{log}->{file}, - log_level => $self->{configuration}->{log}->{level} + $self->{configuration}->{logger}->{file}, + log_level => $self->{configuration}->{logger}->{level} ); - } else { - warn "no logger defined in configuration, logging disabled\n"; } $self->{logger} = Log::Any->get_logger(); @@ -414,8 +412,8 @@ sub req_complete_challenge { ); } - my $sender = $self->{configuration}->{notifier}->{from}; - my $sendmail = $self->{configuration}->{notifier}->{sendmail_path} || + my $sender = $self->{configuration}->{mailer}->{from}; + my $sendmail = $self->{configuration}->{mailer}->{sendmail_path} || '/usr/sbin/sendmail'; my $recipient = $self->{in}->{email}; -- GitLab