mirror of
https://github.com/Yubico/yubikey-val.git
synced 2025-02-26 21:54:16 +01:00
Fix issue with $baseParam value.
- introduced recently in these log format changes. - require_once 'ykval-config.php in logformat() did not import, because it takes place in ykval-verify.php. - hence logformat() did not have $baseParams in scope, so we never write the log line. - refactor and set format outside the class itself.
This commit is contained in:
parent
0838ecf56f
commit
be784b8aaa
@ -31,6 +31,8 @@ require_once 'ykval-common.php';
|
||||
|
||||
class LogVerify
|
||||
{
|
||||
public $format = NULL;
|
||||
|
||||
private $fields = array(
|
||||
'time_start' => NULL,
|
||||
'time_end' => NULL,
|
||||
@ -75,14 +77,11 @@ class LogVerify
|
||||
/**
|
||||
* Write verify request log line to syslog.
|
||||
*
|
||||
* P.S only writes to syslog if __YKVAL_VERIFY_LOGFORMAT__
|
||||
* is set correctly in ykval-config.php.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function write()
|
||||
{
|
||||
if (($logformat = $this->logformat()) === FALSE)
|
||||
if ($this->format === NULL)
|
||||
return false;
|
||||
|
||||
$values = array();
|
||||
@ -91,7 +90,7 @@ class LogVerify
|
||||
$values['%'.$key.'%'] = $val;
|
||||
}
|
||||
|
||||
$message = strtr($logformat, $values);
|
||||
$message = strtr($this->format, $values);
|
||||
|
||||
if (!is_string($message))
|
||||
return false;
|
||||
@ -99,26 +98,6 @@ class LogVerify
|
||||
return syslog(LOG_INFO, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch the logging format as set in the configuration file.
|
||||
*
|
||||
* @return string|bool
|
||||
*/
|
||||
private function logformat()
|
||||
{
|
||||
require_once 'ykval-config.php';
|
||||
|
||||
if (!isset($baseParams)
|
||||
|| !is_array($baseParams)
|
||||
|| !array_key_exists('__YKVAL_VERIFY_LOGFORMAT__', $baseParams)
|
||||
|| !is_string($baseParams['__YKVAL_VERIFY_LOGFORMAT__']))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return $baseParams['__YKVAL_VERIFY_LOGFORMAT__'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Sanitize untrusted values from clients before writing them to syslog.
|
||||
*
|
||||
|
@ -56,6 +56,13 @@ $myLog = new Log('ykval-verify');
|
||||
$myLog->addField('ip', $ipaddr);
|
||||
|
||||
$myLog->request = new LogVerify();
|
||||
|
||||
if (array_key_exists('__YKVAL_VERIFY_LOGFORMAT__', $baseParams)
|
||||
&& is_string($baseParams['__YKVAL_VERIFY_LOGFORMAT__']))
|
||||
{
|
||||
$myLog->request->format = $baseParams['__YKVAL_VERIFY_LOGFORMAT__'];
|
||||
}
|
||||
|
||||
$myLog->request->set('ip', $ipaddr);
|
||||
$myLog->request->set('tls', ($https ? 'tls' : '-'));
|
||||
$myLog->request->set('time_start', $time_start);
|
||||
|
Loading…
x
Reference in New Issue
Block a user