cas-8.x-1.x-dev/src/Controller/ForceLoginController.php

src/Controller/ForceLoginController.php
<?php

declare(strict_types=1);

namespace Drupal\cas\Controller;

use Drupal\Core\DependencyInjection\AutowireTrait;
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
use Drupal\Core\Routing\TrustedRedirectResponse;
use Drupal\cas\CasRedirectData;
use Drupal\cas\CasRedirectResponse;
use Drupal\cas\Service\CasRedirector;
use Symfony\Component\HttpFoundation\Request;

/**
 * Class ForceLoginController.
 *
 * Used to force CAS authentication for anonymous users.
 */
class ForceLoginController implements ContainerInjectionInterface {

  use AutowireTrait;

  public function __construct(
    protected CasRedirector $casRedirector,
  ) {}

  /**
   * Handles a page request for our forced login route.
   *
   * @param \Symfony\Component\HttpFoundation\Request $request
   *   The current HTTP request.
   */
  public function forceLogin(Request $request): TrustedRedirectResponse|CasRedirectResponse|null {
    // @todo What if CAS is not configured? Need to handle that case.
    $service_url_query_params = $request->query->all();
    $cas_redirect_data = new CasRedirectData($service_url_query_params);
    $cas_redirect_data->setIsCacheable(TRUE);
    return $this->casRedirector->buildRedirectResponse($cas_redirect_data, TRUE);
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc