diff --git a/bin/memcacheSync.php b/bin/memcacheSync.php index 0090f9625ef1c2ab3b881f973bf53df364d68a0f..13dc7cc5c2e5c80dc070c5d70d23eda28408861a 100755 --- a/bin/memcacheSync.php +++ b/bin/memcacheSync.php @@ -24,7 +24,7 @@ $baseDir = dirname(dirname(__FILE__)); require_once($baseDir . '/lib/_autoload.php'); /* Initialize the configuration. */ -$configdir = $baseDir . '/config'; +$configdir = SimpleSAML\Utils\Config::getConfigDir(); SimpleSAML_Configuration::setConfigDir($configdir); /* Things we should warn the user about. */ diff --git a/lib/SimpleSAML/Configuration.php b/lib/SimpleSAML/Configuration.php index e3425bacea6151f4f02a53d55e071658a08da299..517e6d12474dfb911807845f84761a8e8646d369 100644 --- a/lib/SimpleSAML/Configuration.php +++ b/lib/SimpleSAML/Configuration.php @@ -144,7 +144,7 @@ class SimpleSAML_Configuration { if ($configSet !== 'simplesaml') { throw new Exception('Configuration set \'' . $configSet . '\' not initialized.'); } else { - self::$configDirs['simplesaml'] = dirname(dirname(dirname(__FILE__))) . '/config'; + self::$configDirs['simplesaml'] = SimpleSAML\Utils\Config::getConfigDir(); } } @@ -171,7 +171,7 @@ class SimpleSAML_Configuration { if ($configSet !== 'simplesaml') { throw new Exception('Configuration set \'' . $configSet . '\' not initialized.'); } else { - self::$configDirs['simplesaml'] = dirname(dirname(dirname(__FILE__))) . '/config'; + self::$configDirs['simplesaml'] = SimpleSAML\Utils\Config::getConfigDir(); } } diff --git a/lib/SimpleSAML/Utils/Config.php b/lib/SimpleSAML/Utils/Config.php index e0c3f57fd9ba018d33d448814fd6904f3a2364fe..afbc2088c43e0c1aa1422505a8dc5d47de9a548c 100644 --- a/lib/SimpleSAML/Utils/Config.php +++ b/lib/SimpleSAML/Utils/Config.php @@ -55,4 +55,32 @@ class Config return $secretSalt; } -} \ No newline at end of file + + /** + * Returns the path to the config dir + * + * If the SIMPLSAMLPHP_CONFIG_DIR environment variable has been set, it takes precedence + * over the default $simplesamldir/config directory. + * + * @return string + */ + public static function getConfigDir() + { + $configDir = dirname(dirname(dirname(__DIR__))) . '/config'; + $configDirEnv = getenv('SIMPLESAMLPHP_CONFIG_DIR'); + if ($configDirEnv !== false) { + if (!is_dir($configDirEnv)) { + throw new \InvalidArgumentException( + sprintf( + 'Config directory specified by environment variable SIMPLESAMLPHP_CONFIG_DIR is not a ' . + 'directory. Given: "%s"', + $configDirEnv + ) + ); + } + $configDir = $configDirEnv; + } + + return $configDir; + } +} diff --git a/modules/metarefresh/bin/metarefresh.php b/modules/metarefresh/bin/metarefresh.php index 2e351f3576d707089476637cd5f9501399bb4597..b31fff56a884b7d7dc7f914d7812bd44f9d5b7c3 100755 --- a/modules/metarefresh/bin/metarefresh.php +++ b/modules/metarefresh/bin/metarefresh.php @@ -23,7 +23,8 @@ if(!SimpleSAML_Module::isModuleEnabled('metarefresh')) { } /* Initialize the configuration. */ -SimpleSAML_Configuration::setConfigDir($baseDir . '/config'); +$configdir = SimpleSAML\Utils\Config::getConfigDir(); +SimpleSAML_Configuration::setConfigDir($configdir); /* $outputDir contains the directory we will store the generated metadata in. */ $outputDir = $baseDir . '/metadata-generated'; diff --git a/modules/statistics/bin/loganalyzer.php b/modules/statistics/bin/loganalyzer.php index 7186890f4b6e8a633ca4a3519b7b4233e5fee344..f64fa99cdbf5a8bb251040da4184469f1b0f8f82 100755 --- a/modules/statistics/bin/loganalyzer.php +++ b/modules/statistics/bin/loganalyzer.php @@ -9,7 +9,8 @@ $baseDir = dirname(dirname(dirname(dirname(__FILE__)))); require_once($baseDir . '/lib/_autoload.php'); /* Initialize the configuration. */ -SimpleSAML_Configuration::setConfigDir($baseDir . '/config'); +$configdir = SimpleSAML\Utils\Config::getConfigDir(); +SimpleSAML_Configuration::setConfigDir($configdir); SimpleSAML\Utils\Time::initTimezone(); diff --git a/modules/statistics/bin/logcleaner.php b/modules/statistics/bin/logcleaner.php index ffa1ecded1eae116f963e2d63daae25da6464149..4bdad961e5baac1d59ee10bf00913200540ef146 100755 --- a/modules/statistics/bin/logcleaner.php +++ b/modules/statistics/bin/logcleaner.php @@ -9,7 +9,8 @@ $baseDir = dirname(dirname(dirname(dirname(__FILE__)))); require_once($baseDir . '/lib/_autoload.php'); /* Initialize the configuration. */ -SimpleSAML_Configuration::setConfigDir($baseDir . '/config'); +$configdir = SimpleSAML\Utils\Config::getConfigDir(); +SimpleSAML_Configuration::setConfigDir($configdir); diff --git a/www/_include.php b/www/_include.php index 37f0c883f894f6a1b5711d622a333d0853a2455d..8b0ee6e10e0c66d8d824c1ec4ca2e7dbdddea7f0 100644 --- a/www/_include.php +++ b/www/_include.php @@ -97,7 +97,7 @@ class SimpleSAML_IncPrefixWarn { $SIMPLESAML_INCPREFIX = new SimpleSAML_IncPrefixWarn(); -$configdir = dirname(dirname(__FILE__)) . '/config'; +$configdir = SimpleSAML\Utils\Config::getConfigDir(); if (!file_exists($configdir . '/config.php')) { header('Content-Type: text/plain'); echo("You have not yet created the simpleSAMLphp configuration files.\n");