function AuthenticationSubscriber::onExceptionSendChallenge

Same name in other branches
  1. 9 core/lib/Drupal/Core/EventSubscriber/AuthenticationSubscriber.php \Drupal\Core\EventSubscriber\AuthenticationSubscriber::onExceptionSendChallenge()
  2. 10 core/lib/Drupal/Core/EventSubscriber/AuthenticationSubscriber.php \Drupal\Core\EventSubscriber\AuthenticationSubscriber::onExceptionSendChallenge()
  3. 11.x core/lib/Drupal/Core/EventSubscriber/AuthenticationSubscriber.php \Drupal\Core\EventSubscriber\AuthenticationSubscriber::onExceptionSendChallenge()

Respond with a challenge on access denied exceptions if appropriate.

On a 403 (access denied), if there are no credentials on the request, some authentication methods (e.g. basic auth) require that a challenge is sent to the client.

Parameters

\Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent $event: The exception event.

File

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

Class

AuthenticationSubscriber
Authentication subscriber.

Namespace

Drupal\Core\EventSubscriber

Code

public function onExceptionSendChallenge(GetResponseForExceptionEvent $event) {
    if (isset($this->challengeProvider) && $event->isMasterRequest()) {
        $request = $event->getRequest();
        $exception = $event->getException();
        if ($exception instanceof AccessDeniedHttpException && !$this->authenticationProvider
            ->applies($request) && (!isset($this->filter) || $this->filter
            ->appliesToRoutedRequest($request, FALSE))) {
            $challenge_exception = $this->challengeProvider
                ->challengeException($request, $exception);
            if ($challenge_exception) {
                $event->setException($challenge_exception);
            }
        }
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.