You are here

private function CasGatewayAuthSubscriber::isCrawlerRequest in CAS 2.x

Check is the current request is from a known list of web crawlers.

We don't want to perform any CAS redirects in this case, because crawlers need to be able to index the pages.

Parameters

\Symfony\Component\HttpFoundation\Request $request: The request.

Return value

bool True if the request is coming from a crawler, false otherwise.

1 call to CasGatewayAuthSubscriber::isCrawlerRequest()
CasGatewayAuthSubscriber::onRequest in src/Subscriber/CasGatewayAuthSubscriber.php
Respond to request events.

File

src/Subscriber/CasGatewayAuthSubscriber.php, line 389

Class

CasGatewayAuthSubscriber
Event subscriber for implementing CAS gateway authentication.

Namespace

Drupal\cas\Subscriber

Code

private function isCrawlerRequest(Request $request) {
  if ($request->server
    ->get('HTTP_USER_AGENT')) {
    $crawlers = $this
      ->getKnownCrawlersList();

    // Return on the first find.
    foreach ($crawlers as $c) {
      if (stripos($request->server
        ->get('HTTP_USER_AGENT'), $c) !== FALSE) {
        $this->casHelper
          ->log(LogLevel::DEBUG, 'CasSubscriber ignoring request from suspected crawler "%crawler"', [
          '%crawler' => $c,
        ]);
        return TRUE;
      }
    }
  }
  return FALSE;
}