mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
refactor: finish logic and definition separation (#6883)
Clean up rewrites to only have function definitions Move authentication initialization into a function
This commit is contained in:
@@ -5,22 +5,27 @@
|
||||
// disable certificate checking before connect if required
|
||||
use LibreNMS\Exceptions\AuthenticationException;
|
||||
|
||||
if (isset($config['auth_ad_check_certificates']) &&
|
||||
!$config['auth_ad_check_certificates']) {
|
||||
putenv('LDAPTLS_REQCERT=never');
|
||||
};
|
||||
function init_auth()
|
||||
{
|
||||
global $ad_init, $ldap_connection, $config;
|
||||
|
||||
if (isset($config['auth_ad_debug']) && $config['auth_ad_debug']) {
|
||||
ldap_set_option(null, LDAP_OPT_DEBUG_LEVEL, 7);
|
||||
}
|
||||
if (isset($config['auth_ad_check_certificates']) &&
|
||||
!$config['auth_ad_check_certificates']) {
|
||||
putenv('LDAPTLS_REQCERT=never');
|
||||
};
|
||||
|
||||
$ad_init = false; // this variable tracks if bind has been called so we don't call it multiple times
|
||||
$ldap_connection = @ldap_connect($config['auth_ad_url']);
|
||||
if (isset($config['auth_ad_debug']) && $config['auth_ad_debug']) {
|
||||
ldap_set_option(null, LDAP_OPT_DEBUG_LEVEL, 7);
|
||||
}
|
||||
|
||||
$ad_init = false; // this variable tracks if bind has been called so we don't call it multiple times
|
||||
$ldap_connection = @ldap_connect($config['auth_ad_url']);
|
||||
|
||||
// disable referrals and force ldap version to 3
|
||||
|
||||
ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, 0);
|
||||
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3);
|
||||
ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, 0);
|
||||
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3);
|
||||
}
|
||||
|
||||
function authenticate($username, $password)
|
||||
{
|
||||
|
@@ -2,37 +2,42 @@
|
||||
|
||||
use LibreNMS\Exceptions\AuthenticationException;
|
||||
|
||||
if (! isset($_SESSION['username'])) {
|
||||
$_SESSION['username'] = '';
|
||||
}
|
||||
function init_auth()
|
||||
{
|
||||
global $ldap_connection, $config;
|
||||
|
||||
if (! isset($_SESSION['username'])) {
|
||||
$_SESSION['username'] = '';
|
||||
}
|
||||
|
||||
// Disable certificate checking before connect if required
|
||||
if (isset($config['auth_ad_check_certificates']) &&
|
||||
if (isset($config['auth_ad_check_certificates']) &&
|
||||
$config['auth_ad_check_certificates'] == 0) {
|
||||
putenv('LDAPTLS_REQCERT=never');
|
||||
};
|
||||
putenv('LDAPTLS_REQCERT=never');
|
||||
};
|
||||
|
||||
// Set up connection to LDAP server
|
||||
$ldap_connection = @ldap_connect($config['auth_ad_url']);
|
||||
if (! $ldap_connection) {
|
||||
echo '<h2>Fatal error while connecting to AD url ' . $config['auth_ad_url'] . ': ' . ldap_error($ldap_connection) . '</h2>';
|
||||
exit;
|
||||
}
|
||||
$ldap_connection = @ldap_connect($config['auth_ad_url']);
|
||||
if (! $ldap_connection) {
|
||||
echo '<h2>Fatal error while connecting to AD url ' . $config['auth_ad_url'] . ': ' . ldap_error($ldap_connection) . '</h2>';
|
||||
exit;
|
||||
}
|
||||
|
||||
// disable referrals and force ldap version to 3
|
||||
ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, 0);
|
||||
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3);
|
||||
ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, 0);
|
||||
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3);
|
||||
|
||||
// Bind to AD
|
||||
if (isset($config['auth_ad_binduser']) && isset($config['auth_ad_bindpassword'])) {
|
||||
// With specified bind user
|
||||
if (! ldap_bind($ldap_connection, "${config['auth_ad_binduser']}@${config['auth_ad_domain']}", "${config['auth_ad_bindpassword']}")) {
|
||||
echo ldap_error($ldap_connection);
|
||||
}
|
||||
} else {
|
||||
// Anonymous
|
||||
if (! ldap_bind($ldap_connection)) {
|
||||
echo ldap_error($ldap_connection);
|
||||
if (isset($config['auth_ad_binduser']) && isset($config['auth_ad_bindpassword'])) {
|
||||
// With specified bind user
|
||||
if (! ldap_bind($ldap_connection, "${config['auth_ad_binduser']}@${config['auth_ad_domain']}", "${config['auth_ad_bindpassword']}")) {
|
||||
echo ldap_error($ldap_connection);
|
||||
}
|
||||
} else {
|
||||
// Anonymous
|
||||
if (! ldap_bind($ldap_connection)) {
|
||||
echo ldap_error($ldap_connection);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -3,6 +3,10 @@
|
||||
use LibreNMS\Exceptions\AuthenticationException;
|
||||
use Phpass\PasswordHash;
|
||||
|
||||
function init_auth()
|
||||
{
|
||||
}
|
||||
|
||||
function authenticate($username, $password)
|
||||
{
|
||||
if (user_exists($username)) {
|
||||
|
@@ -40,28 +40,33 @@
|
||||
|
||||
use LibreNMS\Exceptions\AuthenticationException;
|
||||
|
||||
if (! isset($_SESSION['username'])) {
|
||||
$_SESSION['username'] = '';
|
||||
}
|
||||
function init_auth()
|
||||
{
|
||||
global $ldap_connection, $config;
|
||||
|
||||
/**
|
||||
* Set up connection to LDAP server
|
||||
*/
|
||||
$ldap_connection = @ldap_connect($config['auth_ldap_server'], $config['auth_ldap_port']);
|
||||
if (! $ldap_connection) {
|
||||
echo '<h2>Fatal error while connecting to LDAP server ' . $config['auth_ldap_server'] . ':' . $config['auth_ldap_port'] . ': ' . ldap_error($ldap_connection) . '</h2>';
|
||||
exit;
|
||||
}
|
||||
if ($config['auth_ldap_version']) {
|
||||
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, $config['auth_ldap_version']);
|
||||
}
|
||||
if (! isset($_SESSION['username'])) {
|
||||
$_SESSION['username'] = '';
|
||||
}
|
||||
|
||||
if ($config['auth_ldap_starttls'] && ($config['auth_ldap_starttls'] == 'optional' || $config['auth_ldap_starttls'] == 'require')) {
|
||||
$tls = ldap_start_tls($ldap_connection);
|
||||
if ($config['auth_ldap_starttls'] == 'require' && $tls === false) {
|
||||
echo '<h2>Fatal error: LDAP TLS required but not successfully negotiated:' . ldap_error($ldap_connection) . '</h2>';
|
||||
/**
|
||||
* Set up connection to LDAP server
|
||||
*/
|
||||
$ldap_connection = @ldap_connect($config['auth_ldap_server'], $config['auth_ldap_port']);
|
||||
if (! $ldap_connection) {
|
||||
echo '<h2>Fatal error while connecting to LDAP server ' . $config['auth_ldap_server'] . ':' . $config['auth_ldap_port'] . ': ' . ldap_error($ldap_connection) . '</h2>';
|
||||
exit;
|
||||
}
|
||||
if ($config['auth_ldap_version']) {
|
||||
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, $config['auth_ldap_version']);
|
||||
}
|
||||
|
||||
if ($config['auth_ldap_starttls'] && ($config['auth_ldap_starttls'] == 'optional' || $config['auth_ldap_starttls'] == 'require')) {
|
||||
$tls = ldap_start_tls($ldap_connection);
|
||||
if ($config['auth_ldap_starttls'] == 'require' && $tls === false) {
|
||||
echo '<h2>Fatal error: LDAP TLS required but not successfully negotiated:' . ldap_error($ldap_connection) . '</h2>';
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@@ -2,13 +2,18 @@
|
||||
|
||||
use LibreNMS\Exceptions\AuthenticationException;
|
||||
|
||||
$ldap_connection = @ldap_connect($config['auth_ldap_server'], $config['auth_ldap_port']);
|
||||
function init_auth()
|
||||
{
|
||||
global $config, $ldap_connection;
|
||||
|
||||
if ($config['auth_ldap_starttls'] && ($config['auth_ldap_starttls'] == 'optional' || $config['auth_ldap_starttls'] == 'require')) {
|
||||
$tls = ldap_start_tls($ldap_connection);
|
||||
if ($config['auth_ldap_starttls'] == 'require' && $tls === false) {
|
||||
echo '<h2>Fatal error: LDAP TLS required but not successfully negotiated:'.ldap_error($ldap_connection).'</h2>';
|
||||
exit;
|
||||
$ldap_connection = @ldap_connect($config['auth_ldap_server'], $config['auth_ldap_port']);
|
||||
|
||||
if ($config['auth_ldap_starttls'] && ($config['auth_ldap_starttls'] == 'optional' || $config['auth_ldap_starttls'] == 'require')) {
|
||||
$tls = ldap_start_tls($ldap_connection);
|
||||
if ($config['auth_ldap_starttls'] == 'require' && $tls === false) {
|
||||
echo '<h2>Fatal error: LDAP TLS required but not successfully negotiated:'.ldap_error($ldap_connection).'</h2>';
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -3,6 +3,10 @@
|
||||
use LibreNMS\Exceptions\AuthenticationException;
|
||||
use Phpass\PasswordHash;
|
||||
|
||||
function init_auth()
|
||||
{
|
||||
}
|
||||
|
||||
function authenticate($username, $password)
|
||||
{
|
||||
$encrypted_old = md5($password);
|
||||
|
@@ -4,8 +4,13 @@ use Dapphp\Radius\Radius;
|
||||
use LibreNMS\Exceptions\AuthenticationException;
|
||||
use Phpass\PasswordHash;
|
||||
|
||||
/** @var Radius $radius */
|
||||
$radius = new Radius($config['radius']['hostname'], $config['radius']['secret'], $config['radius']['suffix'], $config['radius']['timeout'], $config['radius']['port']);
|
||||
function init_auth()
|
||||
{
|
||||
/** @var Radius $radius */
|
||||
global $radius, $config;
|
||||
|
||||
$radius = new Radius($config['radius']['hostname'], $config['radius']['secret'], $config['radius']['suffix'], $config['radius']['timeout'], $config['radius']['port']);
|
||||
}
|
||||
|
||||
function authenticate($username, $password)
|
||||
{
|
||||
|
@@ -1349,19 +1349,6 @@ function get_ports_from_type($given_types)
|
||||
return $ports;
|
||||
}
|
||||
|
||||
function ipmiSensorName($hardwareId, $sensorIpmi, $rewriteArray)
|
||||
{
|
||||
if (count($rewriteArray[$hardwareId]) > 0) {
|
||||
if ($rewriteArray[$hardwareId][$sensorIpmi] != "") {
|
||||
return $rewriteArray[$hardwareId][$sensorIpmi];
|
||||
} else {
|
||||
return $sensorIpmi;
|
||||
}
|
||||
} else {
|
||||
return $sensorIpmi;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $filename
|
||||
* @param $content
|
||||
|
@@ -15,7 +15,7 @@ $rrd_options .= ' AREA:sensor_max#c5c5c5';
|
||||
$rrd_options .= ' AREA:sensor_min#ffffffff';
|
||||
|
||||
if ($sensor['poller_type'] == "ipmi") {
|
||||
$rrd_options .= " LINE1.5:sensor#cc0000:'".rrdtool_escape(ipmiSensorName($device['hardware'], $sensor['sensor_descr'], $ipmiSensorsNames), 21)."'";
|
||||
$rrd_options .= " LINE1.5:sensor#cc0000:'".rrdtool_escape(ipmiSensorName($device['hardware'], $sensor['sensor_descr']), 21)."'";
|
||||
} else {
|
||||
$rrd_options .= " LINE1.5:sensor#cc0000:'".rrdtool_escape($sensor['sensor_descr'], 21)."'";
|
||||
}
|
||||
|
@@ -16,7 +16,7 @@ $rrd_options .= ' AREA:sensor_min';
|
||||
$rrd_options .= ' AREA:sensor_diff#c5c5c5::STACK';
|
||||
|
||||
if ($sensor['poller_type'] == "ipmi") {
|
||||
$rrd_options .= " LINE1.5:sensor#cc0000:'".rrdtool_escape(ipmiSensorName($device['hardware'], $sensor['sensor_descr'], $ipmiSensorsNames), 21)."'";
|
||||
$rrd_options .= " LINE1.5:sensor#cc0000:'".rrdtool_escape(ipmiSensorName($device['hardware'], $sensor['sensor_descr']), 21)."'";
|
||||
} else {
|
||||
$rrd_options .= " LINE1.5:sensor#cc0000:'".rrdtool_escape($sensor['sensor_descr'], 21)."'";
|
||||
}
|
||||
|
@@ -10,7 +10,7 @@ foreach (dbFetchRows('SELECT * FROM `sensors` WHERE `sensor_class` = ? AND `devi
|
||||
}
|
||||
|
||||
if ($sensor['poller_type'] == "ipmi") {
|
||||
$sensor_descr = ipmiSensorName($device['hardware'], $sensor['sensor_descr'], $ipmiSensorsNames);
|
||||
$sensor_descr = ipmiSensorName($device['hardware'], $sensor['sensor_descr']);
|
||||
} else {
|
||||
$sensor_descr = $sensor['sensor_descr'];
|
||||
}
|
||||
|
@@ -92,7 +92,7 @@ if (count($sensors)) {
|
||||
$link = generate_url($link_array);
|
||||
|
||||
if ($sensor['poller_type'] == "ipmi") {
|
||||
$sensor['sensor_descr'] = substr(ipmiSensorName($device['hardware'], $sensor['sensor_descr'], $ipmiSensorsNames), 0, 48);
|
||||
$sensor['sensor_descr'] = substr(ipmiSensorName($device['hardware'], $sensor['sensor_descr']), 0, 48);
|
||||
} else {
|
||||
$sensor['sensor_descr'] = substr($sensor['sensor_descr'], 0, 48);
|
||||
}
|
||||
|
@@ -34,52 +34,59 @@ $config['install_dir'] = $install_dir;
|
||||
chdir($install_dir);
|
||||
|
||||
if (!getenv('TRAVIS')) {
|
||||
require('Net/IPv4.php');
|
||||
require('Net/IPv6.php');
|
||||
require_once 'Net/IPv4.php';
|
||||
require_once 'Net/IPv6.php';
|
||||
}
|
||||
|
||||
# composer autoload
|
||||
require $install_dir . '/vendor/autoload.php';
|
||||
if (version_compare(PHP_VERSION, '5.4', '>=')) {
|
||||
require $install_dir . '/lib/influxdb-php/vendor/autoload.php';
|
||||
require_once $install_dir . '/lib/influxdb-php/vendor/autoload.php';
|
||||
}
|
||||
|
||||
if (!function_exists('module_selected')) {
|
||||
function module_selected($module, $modules)
|
||||
{
|
||||
return in_array($module, (array) $modules);
|
||||
}
|
||||
}
|
||||
|
||||
// function only files
|
||||
require_once $install_dir . '/includes/common.php';
|
||||
require $install_dir . '/includes/dbFacile.php';
|
||||
require $install_dir . '/includes/rrdtool.inc.php';
|
||||
require $install_dir . '/includes/influxdb.inc.php';
|
||||
require $install_dir . '/includes/graphite.inc.php';
|
||||
require $install_dir . '/includes/datastore.inc.php';
|
||||
require $install_dir . '/includes/billing.php';
|
||||
require $install_dir . '/includes/syslog.php';
|
||||
require_once $install_dir . '/includes/dbFacile.php';
|
||||
require_once $install_dir . '/includes/rrdtool.inc.php';
|
||||
require_once $install_dir . '/includes/influxdb.inc.php';
|
||||
require_once $install_dir . '/includes/graphite.inc.php';
|
||||
require_once $install_dir . '/includes/datastore.inc.php';
|
||||
require_once $install_dir . '/includes/billing.php';
|
||||
require_once $install_dir . '/includes/syslog.php';
|
||||
if (module_selected('mocksnmp', $init_modules)) {
|
||||
require $install_dir . '/tests/mocks/mock.snmp.inc.php';
|
||||
require_once $install_dir . '/tests/mocks/mock.snmp.inc.php';
|
||||
} else {
|
||||
require $install_dir . '/includes/snmp.inc.php';
|
||||
require_once $install_dir . '/includes/snmp.inc.php';
|
||||
}
|
||||
require $install_dir . '/includes/services.inc.php';
|
||||
require $install_dir . '/includes/mergecnf.inc.php';
|
||||
require $install_dir . '/includes/functions.php';
|
||||
require $install_dir . '/includes/rewrites.php'; // FIXME both definitions and functions
|
||||
require_once $install_dir . '/includes/services.inc.php';
|
||||
require_once $install_dir . '/includes/mergecnf.inc.php';
|
||||
require_once $install_dir . '/includes/functions.php';
|
||||
require_once $install_dir . '/includes/rewrites.php';
|
||||
|
||||
if (module_selected('web', $init_modules)) {
|
||||
chdir($install_dir . '/html');
|
||||
require $install_dir . '/html/includes/functions.inc.php';
|
||||
require_once $install_dir . '/html/includes/functions.inc.php';
|
||||
}
|
||||
|
||||
if (module_selected('discovery', $init_modules)) {
|
||||
require $install_dir . '/includes/discovery/functions.inc.php';
|
||||
require_once $install_dir . '/includes/discovery/functions.inc.php';
|
||||
}
|
||||
|
||||
if (module_selected('polling', $init_modules)) {
|
||||
require_once $install_dir . '/includes/device-groups.inc.php';
|
||||
require $install_dir . '/includes/polling/functions.inc.php';
|
||||
require_once $install_dir . '/includes/polling/functions.inc.php';
|
||||
}
|
||||
|
||||
if (module_selected('alerts', $init_modules)) {
|
||||
require_once $install_dir . '/includes/device-groups.inc.php';
|
||||
require $install_dir . '/includes/alerts.inc.php';
|
||||
require_once $install_dir . '/includes/alerts.inc.php';
|
||||
}
|
||||
|
||||
|
||||
@@ -140,7 +147,9 @@ if (!module_selected('nodb', $init_modules)) {
|
||||
}
|
||||
|
||||
if (file_exists($config['install_dir'] . '/html/includes/authentication/'.$config['auth_mechanism'].'.inc.php')) {
|
||||
require $config['install_dir'] . '/html/includes/authentication/'.$config['auth_mechanism'].'.inc.php';
|
||||
require_once $install_dir . '/html/includes/authentication/functions.php';
|
||||
require_once $config['install_dir'] . '/html/includes/authentication/'.$config['auth_mechanism'].'.inc.php';
|
||||
init_auth();
|
||||
} else {
|
||||
print_error('ERROR: no valid auth_mechanism defined!');
|
||||
exit();
|
||||
@@ -165,11 +174,5 @@ if (module_selected('auth', $init_modules) ||
|
||||
$config['allow_unauth_graphs'] != true
|
||||
)
|
||||
) {
|
||||
require $install_dir . '/html/includes/authentication/functions.php';
|
||||
require $install_dir . '/html/includes/authenticate.inc.php';
|
||||
}
|
||||
|
||||
function module_selected($module, $modules)
|
||||
{
|
||||
return in_array($module, (array) $modules);
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user