Likely this is a PHP8 issue that's been fixed since April.
PHP8 broke a lot of existing code (and continues to break more code with each release), and you need either stay on PHP7 or run a very recent version of Observium. In this case PHP8 is generating an error because $config['auth_ad_groups'] is not an array. This code was legal in PHP7, but is no longer in PHP8. adam. Sent from Mailspring (https://getmailspring.com/), the best free email app for work On Oct 21 2024, at 12:50 am, dwalcott--- via observium observium@lists.observium.org wrote:
Hey everyone,
I had a functioning install of Observium 24.4.13528 (26th April 2024) running on Ubuntu 24.04.1 LTS, just using mysql for auth. I then tried to switch to AD by entering info in the "AD" section of the /settings web UI config page. Once I did that, I got the error below when trying to log in. I switched back to mysql login, by manually changing $config['auth_mechanism'] = "ad"; to $config['auth_mechanism'] = "mysql"; in config.php, and am able to log in again. Can anyone point me in the direction of what's wrong?
array_keys(): Argument #1 ($array) must be of type array, null given in /opt/observium/html/includes/authentication/ad.inc.php:38 #0: (unknown function) called at [/opt/observium/html/includes/authentication/ad.inc.php:38] 33: } 34: } 35: 36: // If no access control groups are specified, use the defined level groups as access control 37: if (!is_array($config['auth_ad_group'])) { 38: $config['auth_ad_group'] = array_keys($config['auth_ad_groups']); 39: } 40: 41: // Synthesize Base DN from configured domain name, if it is not set 42: if (!isset($config['auth_ad_basedn'])) { 43: if (isset($config['auth_ad_domain'])) { #1: array_keys called at [/opt/observium/html/includes/authentication/ad.inc.php:38] 33: } 34: } 35: 36: // If no access control groups are specified, use the defined level groups as access control 37: if (!is_array($config['auth_ad_group'])) { 38: $config['auth_ad_group'] = array_keys($config['auth_ad_groups']); 39: } 40: 41: // Synthesize Base DN from configured domain name, if it is not set 42: if (!isset($config['auth_ad_basedn'])) { 43: if (isset($config['auth_ad_domain'])) { #2: include_once called at [/opt/observium/html/includes/authenticate.inc.php:126] 121: // Always load mysql as backup 122: include_once($config['html_dir'] . '/includes/authentication/mysql.inc.php'); 123: 124: // Load primary module if not mysql 125: if ($config['auth_mechanism'] !== 'mysql') { 126: include_once($auth_file); 127: } 128: 129: // Include base auth functions calls 130: include_once($config['html_dir'] . '/includes/authenticate-functions.inc.php'); 131: } else { #3: include called at [/opt/observium/html/index.php:72] 67: $_SERVER['PATH_INFO'] = $_SERVER['PATH_INFO'] ?? ($_SERVER['ORIG_PATH_INFO'] ?? ''); 68: 69: // Clean global $vars variable, it populated only after correct authenticating 70: unset($vars); 71: 72: include($config['html_dir'] . "/includes/authenticate.inc.php"); 73: 74: // Default theme set in global or user setting 75: if ($config['web_theme_default'] === 'system' && isset($_COOKIE['screen_scheme'])) { 76: $theme = $_COOKIE['screen_scheme']; 77: } else { _______________________________________________ observium mailing list -- observium@lists.observium.org To unsubscribe send an email to observium-leave@lists.observium.org