diff --git a/core/lib/Drupal/Core/Access/AccessArgumentsResolverFactory.php b/core/lib/Drupal/Core/Access/AccessArgumentsResolverFactory.php index cdef380..ddb3a51 100644 --- a/core/lib/Drupal/Core/Access/AccessArgumentsResolverFactory.php +++ b/core/lib/Drupal/Core/Access/AccessArgumentsResolverFactory.php @@ -22,11 +22,7 @@ class AccessArgumentsResolverFactory implements AccessArgumentsResolverFactoryIn */ public function getArgumentsResolver(RouteMatchInterface $route_match, AccountInterface $account, Request $request = NULL) { $route = $route_match->getRouteObject(); - - // Defaults for the parameters defined on the route object need to be added - // to the raw arguments. - $raw_route_arguments = $route_match->getRawParameters()->all() + $route->getDefaults(); - + $raw_route_arguments = $route_match->getRawParameters()->all(); $upcasted_route_arguments = $route_match->getParameters()->all(); // Parameters which are not defined on the route object, but still are diff --git a/core/lib/Drupal/Core/Access/AccessManager.php b/core/lib/Drupal/Core/Access/AccessManager.php index 5b2f871..b919c62 100644 --- a/core/lib/Drupal/Core/Access/AccessManager.php +++ b/core/lib/Drupal/Core/Access/AccessManager.php @@ -168,7 +168,7 @@ public function checkNamedRoute($route_name, array $parameters, AccountInterface // ParamConverterManager relies on the route object being available // from the parameters array. $parameters[RouteObjectInterface::ROUTE_OBJECT] = $route; - $upcasted_parameters = $this->paramConverterManager->convert($parameters, new Request()); + $upcasted_parameters = $this->paramConverterManager->convert($parameters + $route->getDefaults(), new Request()); $route_match = new RouteMatch($route_name, $route, $upcasted_parameters, $parameters); return $this->check($route_match, $account);