Loading core/lib/Drupal/Core/Routing/AccessAwareRouter.php +9 −1 Original line number Diff line number Diff line Loading @@ -7,8 +7,10 @@ use Drupal\Core\Cache\CacheableDependencyInterface; use Drupal\Core\Http\Exception\CacheableAccessDeniedHttpException; use Drupal\Core\Session\AccountInterface; use Symfony\Component\HttpFoundation\Exception\BadRequestException; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; use Symfony\Component\Routing\Exception\ResourceNotFoundException; use Symfony\Component\Routing\RouteCollection; use Symfony\Component\Routing\RequestContext as SymfonyRequestContext; use Symfony\Component\Routing\RouterInterface; Loading Loading @@ -138,7 +140,13 @@ public function generate($name, $parameters = [], $referenceType = self::ABSOLUT * Thrown when access checking failed. */ public function match($pathinfo): array { return $this->matchRequest(Request::create($pathinfo)); try { $request = Request::create($pathinfo); } catch (BadRequestException $e) { throw new ResourceNotFoundException($e->getMessage(), $e->getCode(), $e); } return $this->matchRequest($request); } } core/lib/Drupal/Core/Routing/Router.php +7 −1 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace Drupal\Core\Routing; use Drupal\Core\Path\CurrentPathStack; use Symfony\Component\HttpFoundation\Exception\BadRequestException; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Exception\MethodNotAllowedException; use Symfony\Component\Routing\Exception\ResourceNotFoundException; Loading Loading @@ -98,7 +99,12 @@ public function addRouteEnhancer(EnhancerInterface $route_enhancer) { * {@inheritdoc} */ public function match($pathinfo): array { try { $request = Request::create($pathinfo); } catch (BadRequestException $e) { throw new ResourceNotFoundException($e->getMessage(), $e->getCode(), $e); } return $this->matchRequest($request); } Loading core/tests/Drupal/Tests/Core/Routing/RouterTest.php +4 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ use Drupal\Core\Routing\UrlGeneratorInterface; use Drupal\Tests\UnitTestCase; use Prophecy\Argument; use Symfony\Component\Routing\Exception\ResourceNotFoundException; use Symfony\Component\Routing\Route; use Symfony\Component\Routing\RouteCollection; Loading Loading @@ -59,6 +60,9 @@ public function testMatchesWithDifferentFitOrder(): void { $result = $router->match('/user/login'); $this->assertEquals('user_login', $result['_route']); $this->expectException(ResourceNotFoundException::class); $router->match('/user/login '); } } Loading
core/lib/Drupal/Core/Routing/AccessAwareRouter.php +9 −1 Original line number Diff line number Diff line Loading @@ -7,8 +7,10 @@ use Drupal\Core\Cache\CacheableDependencyInterface; use Drupal\Core\Http\Exception\CacheableAccessDeniedHttpException; use Drupal\Core\Session\AccountInterface; use Symfony\Component\HttpFoundation\Exception\BadRequestException; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; use Symfony\Component\Routing\Exception\ResourceNotFoundException; use Symfony\Component\Routing\RouteCollection; use Symfony\Component\Routing\RequestContext as SymfonyRequestContext; use Symfony\Component\Routing\RouterInterface; Loading Loading @@ -138,7 +140,13 @@ public function generate($name, $parameters = [], $referenceType = self::ABSOLUT * Thrown when access checking failed. */ public function match($pathinfo): array { return $this->matchRequest(Request::create($pathinfo)); try { $request = Request::create($pathinfo); } catch (BadRequestException $e) { throw new ResourceNotFoundException($e->getMessage(), $e->getCode(), $e); } return $this->matchRequest($request); } }
core/lib/Drupal/Core/Routing/Router.php +7 −1 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace Drupal\Core\Routing; use Drupal\Core\Path\CurrentPathStack; use Symfony\Component\HttpFoundation\Exception\BadRequestException; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Exception\MethodNotAllowedException; use Symfony\Component\Routing\Exception\ResourceNotFoundException; Loading Loading @@ -98,7 +99,12 @@ public function addRouteEnhancer(EnhancerInterface $route_enhancer) { * {@inheritdoc} */ public function match($pathinfo): array { try { $request = Request::create($pathinfo); } catch (BadRequestException $e) { throw new ResourceNotFoundException($e->getMessage(), $e->getCode(), $e); } return $this->matchRequest($request); } Loading
core/tests/Drupal/Tests/Core/Routing/RouterTest.php +4 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ use Drupal\Core\Routing\UrlGeneratorInterface; use Drupal\Tests\UnitTestCase; use Prophecy\Argument; use Symfony\Component\Routing\Exception\ResourceNotFoundException; use Symfony\Component\Routing\Route; use Symfony\Component\Routing\RouteCollection; Loading Loading @@ -59,6 +60,9 @@ public function testMatchesWithDifferentFitOrder(): void { $result = $router->match('/user/login'); $this->assertEquals('user_login', $result['_route']); $this->expectException(ResourceNotFoundException::class); $router->match('/user/login '); } }