Skip to content
Snippets Groups Projects
Commit 0903606b authored by Frédéric G. Marand's avatar Frédéric G. Marand
Browse files

Issue #3323967 by fgm: Request tracking also tracks invalid request IDs

parent d9f9fdd9
No related branches found
No related tags found
1 merge request!5Issue #3323967: Request tracking also tracks invalid request IDs
...@@ -112,7 +112,7 @@ function _mongodb_requirements_databases(array $settings, array $databases, arra ...@@ -112,7 +112,7 @@ function _mongodb_requirements_databases(array $settings, array $databases, arra
$warnings = []; $warnings = [];
$success = TRUE; $success = TRUE;
foreach ($databases as $database => $list) { foreach ($databases as $database => $list) {
[$client,] = $list; [$client] = $list;
if (empty($aliases[$client])) { if (empty($aliases[$client])) {
$success = FALSE; $success = FALSE;
$warnings[] = t('Database "@db" references undefined client "@client".', [ $warnings[] = t('Database "@db" references undefined client "@client".', [
......
...@@ -119,7 +119,7 @@ class EventController { ...@@ -119,7 +119,7 @@ class EventController {
: $location, : $location,
empty($event->referrer) ? '' : Link::fromTextAndUrl($event->referrer, Url::fromUri($event->referrer)), empty($event->referrer) ? '' : Link::fromTextAndUrl($event->referrer, Url::fromUri($event->referrer)),
$event->hostname, $event->hostname,
isset($event->requestTracking_id) (isset($event->requestTracking_id) && $event->requestTracking_id !== Logger::INVALID_REQUEST)
? Link::createFromRoute($this->t('Request'), ? Link::createFromRoute($this->t('Request'),
'mongodb_watchdog.reports.request', 'mongodb_watchdog.reports.request',
['uniqueId' => $event->requestTracking_id]) ['uniqueId' => $event->requestTracking_id])
......
...@@ -35,48 +35,52 @@ class Logger extends AbstractLogger { ...@@ -35,48 +35,52 @@ class Logger extends AbstractLogger {
// Configuration-related constants. // Configuration-related constants.
// The configuration item. // The configuration item.
const CONFIG_NAME = 'mongodb_watchdog.settings'; public const CONFIG_NAME = 'mongodb_watchdog.settings';
// The individual configuration keys. // The individual configuration keys.
const CONFIG_ITEMS = 'items'; public const CONFIG_ITEMS = 'items';
const CONFIG_REQUESTS = 'requests'; public const CONFIG_REQUESTS = 'requests';
const CONFIG_LIMIT = 'limit'; public const CONFIG_LIMIT = 'limit';
const CONFIG_ITEMS_PER_PAGE = 'items_per_page'; public const CONFIG_ITEMS_PER_PAGE = 'items_per_page';
const CONFIG_REQUEST_TRACKING = 'request_tracking'; public const CONFIG_REQUEST_TRACKING = 'request_tracking';
// The logger database alias. // The logger database alias.
const DB_LOGGER = 'logger'; public const DB_LOGGER = 'logger';
// The default channel exposed when using the raw PSR-3 contract. // The default channel exposed when using the raw PSR-3 contract.
const DEFAULT_CHANNEL = 'psr-3'; public const DEFAULT_CHANNEL = 'psr-3';
const MODULE = 'mongodb_watchdog'; // The magic invalid request ID used in events not triggered by a Web request
// with a valid UNIQUE_ID. 23-byte format, unlike mod_unique_id values (24).
public const INVALID_REQUEST = '@@Not-a-valid-request@@';
public const MODULE = 'mongodb_watchdog';
// The service for the specific PSR-3 logger for MongoDB. // The service for the specific PSR-3 logger for MongoDB.
const SERVICE_LOGGER = 'mongodb.logger'; public const SERVICE_LOGGER = 'mongodb.logger';
// The service for the Drupal LoggerChannel for this module, logging to all // The service for the Drupal LoggerChannel for this module, logging to all
// active loggers. // active loggers.
const SERVICE_CHANNEL = 'logger.channel.mongodb_watchdog'; public const SERVICE_CHANNEL = 'logger.channel.mongodb_watchdog';
// The service for hook_requirements(). // The service for hook_requirements().
const SERVICE_REQUIREMENTS = 'mongodb.watchdog_requirements'; public const SERVICE_REQUIREMENTS = 'mongodb.watchdog_requirements';
const SERVICE_SANITY_CHECK = 'mongodb.watchdog.sanity_check'; public const SERVICE_SANITY_CHECK = 'mongodb.watchdog.sanity_check';
const TRACKER_COLLECTION = 'watchdog_tracker'; public const TRACKER_COLLECTION = 'watchdog_tracker';
const TEMPLATE_COLLECTION = 'watchdog'; public const TEMPLATE_COLLECTION = 'watchdog';
const EVENT_COLLECTION_PREFIX = 'watchdog_event_'; public const EVENT_COLLECTION_PREFIX = 'watchdog_event_';
const EVENT_COLLECTIONS_PATTERN = '^watchdog_event_[[:xdigit:]]{32}$'; public const EVENT_COLLECTIONS_PATTERN = '^watchdog_event_[[:xdigit:]]{32}$';
const LEGACY_TYPE_MAP = [ public const LEGACY_TYPE_MAP = [
'typeMap' => [ 'typeMap' => [
'array' => 'array', 'array' => 'array',
'document' => 'array', 'document' => 'array',
...@@ -370,8 +374,7 @@ class Logger extends AbstractLogger { ...@@ -370,8 +374,7 @@ class Logger extends AbstractLogger {
$this->trackerCollection()->insertOne($track); $this->trackerCollection()->insertOne($track);
} }
else { else {
// 24-byte format like mod_unique_id values. $requestId = self::INVALID_REQUEST;
$requestId = '@@Not-a-valid-request@@';
} }
$eventCollection = $this->eventCollection($templateId); $eventCollection = $this->eventCollection($templateId);
......
...@@ -35,11 +35,11 @@ class FormStateValueResolverTest extends UnitTestCase { ...@@ -35,11 +35,11 @@ class FormStateValueResolverTest extends UnitTestCase {
} }
/** /**
* Test extra optionnal argument resolution. * Test extra optional argument resolution.
* *
* @covers ::supports * @covers ::supports
*/ */
public function testOptionnalExtraArgumentResolver() { public function testOptionalExtraArgumentResolver() {
$resolver = new FormStateValueResolver(); $resolver = new FormStateValueResolver();
$request = new Request(); $request = new Request();
$request->attributes->add([FormStateValueResolver::NAME_LEGACY => new FormState()]); $request->attributes->add([FormStateValueResolver::NAME_LEGACY => new FormState()]);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment