You are here

public function AuthenticationSubscriber::onExceptionAccessDenied in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/EventSubscriber/AuthenticationSubscriber.php \Drupal\Core\EventSubscriber\AuthenticationSubscriber::onExceptionAccessDenied()

Detect disallowed authentication methods on access denied exceptions.

Parameters

\Symfony\Component\HttpKernel\Event\ExceptionEvent $event:

File

core/lib/Drupal/Core/EventSubscriber/AuthenticationSubscriber.php, line 129

Class

AuthenticationSubscriber
Authentication subscriber.

Namespace

Drupal\Core\EventSubscriber

Code

public function onExceptionAccessDenied(ExceptionEvent $event) {
  if (isset($this->filter) && $event
    ->isMainRequest()) {
    $request = $event
      ->getRequest();
    $exception = $event
      ->getThrowable();
    if ($exception instanceof AccessDeniedHttpException && $this->authenticationProvider
      ->applies($request) && !$this->filter
      ->appliesToRoutedRequest($request, TRUE)) {
      $event
        ->setThrowable(new AccessDeniedHttpException('The used authentication method is not allowed on this route.', $exception));
    }
  }
}