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:
Tony Murray
2017-07-03 15:38:58 -05:00
committed by GitHub
parent 5020f47838
commit 20b08cf595
14 changed files with 935 additions and 943 deletions

View File

@@ -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)
{

View File

@@ -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);
}
}
}

View File

@@ -3,6 +3,10 @@
use LibreNMS\Exceptions\AuthenticationException;
use Phpass\PasswordHash;
function init_auth()
{
}
function authenticate($username, $password)
{
if (user_exists($username)) {

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -3,6 +3,10 @@
use LibreNMS\Exceptions\AuthenticationException;
use Phpass\PasswordHash;
function init_auth()
{
}
function authenticate($username, $password)
{
$encrypted_old = md5($password);

View File

@@ -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)
{

View File

@@ -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

View File

@@ -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)."'";
}

View File

@@ -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)."'";
}

View File

@@ -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'];
}

View File

@@ -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);
}

View File

@@ -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