From f1efb10af288c438fa034e7beb62e14b8417056f Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Wed, 19 Aug 2015 10:13:36 -0400 Subject: Validate options of the LDAP auth plugin on installation Few of the LDAP options had any validation at all so it was easy to provide a bad DN template, basedn and server URL. These types of errors are now sufficient to kill the installer rather than letting it limp along and hope the user notices the failures in the output. https://fedorahosted.org/ipsilon/ticket/40 Signed-off-by: Rob Crittenden Reviewed-by: Patrick Uiterwijk --- ipsilon/install/ipsilon-server-install | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'ipsilon/install/ipsilon-server-install') diff --git a/ipsilon/install/ipsilon-server-install b/ipsilon/install/ipsilon-server-install index 2c16a03..378479d 100755 --- a/ipsilon/install/ipsilon-server-install +++ b/ipsilon/install/ipsilon-server-install @@ -30,14 +30,10 @@ STATICDIR = '/usr/share/ipsilon' WSGI_SOCKET_PREFIX = None -class ConfigurationError(Exception): +class ConfigurationError(StandardError): def __init__(self, message): - super(ConfigurationError, self).__init__(message) - self.message = message - - def __str__(self): - return repr(self.message) + StandardError.__init__(self, message) #Silence cherrypy logging to screen @@ -181,7 +177,8 @@ def install(plugins, args): plugin = plugins['Environment Helpers'][plugin_name] plugin_changes = {} if plugin.configure_server(args, plugin_changes) == False: - logger.info('Configuration of environment helper %s failed' % plugin_name) + msg = 'Configuration of environment helper %s failed' % plugin_name + raise ConfigurationError(msg) changes['env_helper'][plugin_name] = plugin_changes logger.info('Configuring login managers') @@ -192,7 +189,8 @@ def install(plugins, args): sys.exit('Login provider %s not installed' % plugin_name) plugin_changes = {} if plugin.configure(args, plugin_changes) == False: - logger.info('Configuration of login manager %s failed' % plugin_name) + msg = 'Configuration of login manager %s failed' % plugin_name + raise ConfigurationError(msg) changes['login_manager'][plugin_name] = plugin_changes logger.info('Configuring Info provider') @@ -200,7 +198,8 @@ def install(plugins, args): plugin = plugins['Info Provider'][plugin_name] plugin_changes = {} if plugin.configure(args, plugin_changes) == False: - logger.info('Configuration of info provider %s failed' % plugin_name) + msg = 'Configuration of info provider %s failed' % plugin_name + raise ConfigurationError(msg) changes['info_provider'][plugin_name] = plugin_changes logger.info('Configuring Authentication Providers') @@ -208,7 +207,8 @@ def install(plugins, args): plugin = plugins['Auth Providers'][plugin_name] plugin_changes = {} if plugin.configure(args, plugin_changes) == False: - logger.info('Configuration of auth provider %s failed' % plugin_name) + msg = 'Configuration of auth provider %s failed' % plugin_name + raise ConfigurationError(msg) changes['auth_provider'][plugin_name] = plugin_changes # Save any changes that were made -- cgit