From 696087541b73db2b1a3fdfd06f1581c77631869f Mon Sep 17 00:00:00 2001 From: Dave Long Date: Mon, 15 Apr 2024 10:42:54 +0100 Subject: [PATCH 1/2] Fix Drupal bootstrap. --- src/DrupalHelper.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/DrupalHelper.php b/src/DrupalHelper.php index 8488c55..13bd1b2 100644 --- a/src/DrupalHelper.php +++ b/src/DrupalHelper.php @@ -3,7 +3,9 @@ namespace SimpleSAML\Module\drupalauth; use Drupal\Core\DrupalKernel; +use Drupal\Core\Routing\RouteObjectInterface; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\Routing\Route; class DrupalHelper { @@ -13,6 +15,8 @@ class DrupalHelper * Boot Drupal. * * @param string $drupalRoot Path to Drupal root. + * + * @see \Drupal\Core\Test\FunctionalTestSetupTrait::initKernel() */ public function bootDrupal(string $drupalRoot) { @@ -21,8 +25,11 @@ public function bootDrupal(string $drupalRoot) $originalDir = getcwd(); chdir($drupalRoot); $kernel = DrupalKernel::createFromRequest($request, $autoloader, 'prod', true, $drupalRoot); + $kernel->invalidateContainer(); $kernel->boot(); - $kernel->loadLegacyIncludes(); + $request->attributes->set(RouteObjectInterface::ROUTE_OBJECT, new Route('')); + $request->attributes->set(RouteObjectInterface::ROUTE_NAME, ''); + $kernel->preHandle($request); chdir($originalDir); } From 58d903b3704b14748b600aefee43bc2b7e471f16 Mon Sep 17 00:00:00 2001 From: Dave Long Date: Mon, 15 Apr 2024 12:50:16 +0100 Subject: [PATCH 2/2] Do not invalidate container. --- src/DrupalHelper.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/DrupalHelper.php b/src/DrupalHelper.php index 13bd1b2..b1cf79a 100644 --- a/src/DrupalHelper.php +++ b/src/DrupalHelper.php @@ -25,7 +25,6 @@ public function bootDrupal(string $drupalRoot) $originalDir = getcwd(); chdir($drupalRoot); $kernel = DrupalKernel::createFromRequest($request, $autoloader, 'prod', true, $drupalRoot); - $kernel->invalidateContainer(); $kernel->boot(); $request->attributes->set(RouteObjectInterface::ROUTE_OBJECT, new Route('')); $request->attributes->set(RouteObjectInterface::ROUTE_NAME, '');