From 3bff18ec004a01235ff14110bdac60ef158b0071 Mon Sep 17 00:00:00 2001 From: Aaron Weeden Date: Fri, 2 Feb 2024 17:05:07 -0500 Subject: [PATCH] Allow `@` in remote user format string when parsing web server log files. --- classes/ETL/DataEndpoint/WebServerLogFile.php | 6 ++++++ composer.json | 3 +++ 2 files changed, 9 insertions(+) diff --git a/classes/ETL/DataEndpoint/WebServerLogFile.php b/classes/ETL/DataEndpoint/WebServerLogFile.php index e5bfff093f..f52022220f 100644 --- a/classes/ETL/DataEndpoint/WebServerLogFile.php +++ b/classes/ETL/DataEndpoint/WebServerLogFile.php @@ -47,6 +47,12 @@ public function __construct(DataEndpointOptions $options, LoggerInterface $logge parent::__construct($options, $logger); $this->web_parser = new \Kassner\LogParser\LogParser(); + + // Allow "at" sign in remote user format string. + // This can be removed if Kassner LogParser is updated to + // version >2.1.1 (see note in composer.json). + $this->web_parser->addPattern('%u', '(?P(?:-|[\w\-\.@]+))'); + if (isset($options->log_format)) { $this->web_parser->setFormat($options->log_format); } diff --git a/composer.json b/composer.json index 07813c0cca..09af4ed9f7 100644 --- a/composer.json +++ b/composer.json @@ -1,4 +1,7 @@ { + "extra": { + "COMMENT": "If kassner/log-parser is updated to version >2.1.1, then the call to web_parser->addPattern in classes/ETL/DataEndpoint/WebServerLogFile.php (added in https://github.com/ubccr/xdmod/pull/1816) can be removed along with this 'extra' section." + }, "require": { "php": "^5.4 || ^7.2", "carlo/jquery-base64-file": "^1.0",