remove passwords in URLs from all log messages

remotes/origin/ldap_group_count
Bjoern Schiessle 11 years ago
parent afa00318bc
commit 44b637470c
  1. 15
      lib/private/log/errorhandler.php
  2. 1
      lib/private/log/owncloud.php

@ -14,6 +14,15 @@ class ErrorHandler {
/** @var LoggerInterface */ /** @var LoggerInterface */
private static $logger; private static $logger;
/**
* @brief remove password in URLs
* @param string $msg
* @return string
*/
private static function removePassword($msg) {
return preg_replace('/\/\/(.*):(.*)@/', '//xxx:xxx@', $msg);
}
public static function register() { public static function register() {
$handler = new ErrorHandler(); $handler = new ErrorHandler();
@ -32,14 +41,14 @@ class ErrorHandler {
if($error && self::$logger) { if($error && self::$logger) {
//ob_end_clean(); //ob_end_clean();
$msg = $error['message'] . ' at ' . $error['file'] . '#' . $error['line']; $msg = $error['message'] . ' at ' . $error['file'] . '#' . $error['line'];
self::$logger->critical($msg, array('app' => 'PHP')); self::$logger->critical(self::removePassword($msg), array('app' => 'PHP'));
} }
} }
// Uncaught exception handler // Uncaught exception handler
public static function onException($exception) { public static function onException($exception) {
$msg = $exception->getMessage() . ' at ' . $exception->getFile() . '#' . $exception->getLine(); $msg = $exception->getMessage() . ' at ' . $exception->getFile() . '#' . $exception->getLine();
self::$logger->critical($msg, array('app' => 'PHP')); self::$logger->critical(self::removePassword($msg), array('app' => 'PHP'));
} }
//Recoverable errors handler //Recoverable errors handler
@ -48,7 +57,7 @@ class ErrorHandler {
return; return;
} }
$msg = $message . ' at ' . $file . '#' . $line; $msg = $message . ' at ' . $file . '#' . $line;
self::$logger->warning($msg, array('app' => 'PHP')); self::$logger->warning(self::removePassword($msg), array('app' => 'PHP'));
} }
} }

@ -69,7 +69,6 @@ class OC_Log_Owncloud {
} }
$time = new DateTime(null, $timezone); $time = new DateTime(null, $timezone);
// remove username/passswords from URLs before writing the to the log file // remove username/passswords from URLs before writing the to the log file
$message = preg_replace('/\/\/(.*):(.*)@/', '//xxx:xxx@', $message);
$entry=array('app'=>$app, 'message'=>$message, 'level'=>$level, 'time'=> $time->format($format)); $entry=array('app'=>$app, 'message'=>$message, 'level'=>$level, 'time'=> $time->format($format));
$entry = json_encode($entry); $entry = json_encode($entry);
$handle = @fopen(self::$logFile, 'a'); $handle = @fopen(self::$logFile, 'a');

Loading…
Cancel
Save