LINUX.ORG.RU

Переадресация неавторизованных пользователей LogAnalyzer

 ,


0

1

Добрый день, возникла необходимость собирать логи с машин, всё настроено и функционирует подобающим образом, но прежде чем пустить в продакшн столкнулся с одной проблемой. Любой неавторизованный пользователь может спокойной гулять по страницам сайта. Я в PHP не особо разбираюсь, в течении дня пытался разобраться самостоятельно, но ничего не вышло. Буду благодарен любой помощи. Что имеем: Ubuntu 18 LogAnalyzer 4.1.6 Что удалось узнать: На сайте есть вкладки, такие как search и admin, во вкладку admin просто так не попадешь, выдаёт ошибку и ссылку на страницу входа, непосредственно код:

 InitUserSession();
            if (!$content['SESSION_LOGGEDIN']) {
                // Check if user needs to be logged in
                if (GetConfigSetting("UserDBLoginRequired", false)) {
                    // Redirect USER if not on loginpage or installpage!
                    if (!defined("IS_NOLOGINPAGE") && !defined("IN_PHPLOGCON_INSTALL") && !defined("IN_PHPLOGCON_COMMANDLINE")) {
                        RedirectToUserLogin();
                    }
                } else {
                    if (defined('IS_ADMINPAGE')) {
                        // Language System not initialized yet
                        DieWithFriendlyErrorMsg("You need to be logged in in order to access the admin pages.",

Код search.php

define('IN_PHPLOGCON', true);
$gl_root_path = './';
include($gl_root_path . 'include/functions_common.php');
include($gl_root_path . 'include/functions_frontendhelpers.php');
include($gl_root_path . 'include/functions_filters.php');
InitPhpLogCon();
InitSourceConfigs();
InitFrontEndDefaults();	// Only in WebFrontEnd
// Init Langauge first!
// IncludeLanguageFile( $gl_root_path . '/lang/' . $LANG . '/main.php' );
// Helpers for frontend filtering!
InitFilterHelpers();	
// ***					*** //
// --- Extra Javascript?
$content['EXTRA_JAVASCRIPT'] = "<script type='text/javascript' src='" . $content['BASEPATH'] . "js/searchhelpers.js'></script>";
// --- 
// --- CONTENT Vars
// Init Sorting variables
$content['searchstr'] = "";
// ---

Код admin.php

// *** Default includes	and procedures *** //
define('IN_PHPLOGCON', true);
$gl_root_path = './../';
// Now include necessary include files!
include($gl_root_path . 'include/functions_common.php');
include($gl_root_path . 'include/functions_frontendhelpers.php');
include($gl_root_path . 'include/functions_filters.php');
// Include LogStream facility
// include($gl_root_path . 'classes/logstream.class.php');
// Set PAGE to be ADMINPAGE!
define('IS_ADMINPAGE', true);
$content['IS_ADMINPAGE'] = true;
InitPhpLogCon();
InitSourceConfigs();
InitFrontEndDefaults();	// Only in WebFrontEnd
InitFilterHelpers();	// Helpers for frontend filtering!
// Init admin langauge file now!
IncludeLanguageFile( $gl_root_path . '/lang/' . $LANG . '/admin.php' );
// --- Deny if DisableAdminUsers is enabled and User is not ADMIN 
if ( !isset($_SESSION['SESSION_ISADMIN']) || $_SESSION['SESSION_ISADMIN'] == 0 ) 
{
	if ( GetConfigSetting("DisableAdminUsers", 0, CFGLEVEL_GLOBAL) == 1 )
		DieWithFriendlyErrorMsg( $content['LN_ADMIN_ERROR_NOTALLOWED'] );
}
// --- 
// --- Deny if User is READONLY!
if ( !isset($_SESSION['SESSION_ISREADONLY']) || $_SESSION['SESSION_ISREADONLY'] == 1 )
{
	if (	isset($_POST['op']) ||
			(
				isset($_GET['op']) && 
				(
					$_GET['op'] == "enableuserops"
				)
			)	
		)
		DieWithFriendlyErrorMsg( $content['LN_ADMIN_ERROR_READONLY'] );
}
// --- 
// --- BEGIN Custom Code
if ( isset($_SESSION['SESSION_ISADMIN']) && $_SESSION['SESSION_ISADMIN'] == 1 ) 
{
	$content['EditAllowed'] = true;
	$content['DISABLE_GLOBALEDIT_FORMCONTROL'] = "";
}
else	
{
	$content['EditAllowed'] = false;
	$content['DISABLE_GLOBALEDIT_FORMCONTROL'] = "disabled";
}

Пытался их совместить, но ничего не вышло.

Ответ на: комментарий от goingUp

Вот тоже думал над этим вариантом, думал может кто-нибудь уже сталкивался с подобной проблемой. Ну ладно, буду ждать ответа здесь, может ещё кто подскажет и параллельно действительно настраивать http аутентификацию, но конечно этот костыль мне не особо нравится. Спасибо за ответ.

actinon
() автор топика

Решено! Пропустил самое элементарное, в файле config.php изменяем следующее:

$CFG['UserDBLoginRequired'] = false;
$CFG['UserDBAuthMode'] = 0;
на
$CFG['UserDBLoginRequired'] = true;
$CFG['UserDBAuthMode'] = USERDB_AUTH_INTERNAL;

actinon
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.