annotate core/modules/system/src/Controller/CsrfTokenController.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\system\Controller;
Chris@0 4
Chris@0 5 use Drupal\Core\Access\CsrfRequestHeaderAccessCheck;
Chris@0 6 use Drupal\Core\Access\CsrfTokenGenerator;
Chris@0 7 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
Chris@0 8 use Symfony\Component\DependencyInjection\ContainerInterface;
Chris@0 9 use Symfony\Component\HttpFoundation\Response;
Chris@0 10
Chris@0 11 /**
Chris@0 12 * Returns responses for CSRF token routes.
Chris@0 13 */
Chris@0 14 class CsrfTokenController implements ContainerInjectionInterface {
Chris@0 15
Chris@0 16 /**
Chris@0 17 * The CSRF token generator.
Chris@0 18 *
Chris@0 19 * @var \Drupal\Core\Access\CsrfTokenGenerator
Chris@0 20 */
Chris@0 21 protected $tokenGenerator;
Chris@0 22
Chris@0 23 /**
Chris@0 24 * Constructs a new CsrfTokenController object.
Chris@0 25 *
Chris@0 26 * @param \Drupal\Core\Access\CsrfTokenGenerator $token_generator
Chris@0 27 * The CSRF token generator.
Chris@0 28 */
Chris@0 29 public function __construct(CsrfTokenGenerator $token_generator) {
Chris@0 30 $this->tokenGenerator = $token_generator;
Chris@0 31 }
Chris@0 32
Chris@0 33 /**
Chris@0 34 * {@inheritdoc}
Chris@0 35 */
Chris@0 36 public static function create(ContainerInterface $container) {
Chris@0 37 return new static(
Chris@0 38 $container->get('csrf_token')
Chris@0 39 );
Chris@0 40 }
Chris@0 41
Chris@0 42 /**
Chris@0 43 * Returns a CSRF protecting session token.
Chris@0 44 *
Chris@0 45 * @return \Symfony\Component\HttpFoundation\Response
Chris@0 46 * The response object.
Chris@0 47 */
Chris@0 48 public function csrfToken() {
Chris@0 49 return new Response($this->tokenGenerator->get(CsrfRequestHeaderAccessCheck::TOKEN_KEY), 200, ['Content-Type' => 'text/plain']);
Chris@0 50 }
Chris@0 51
Chris@0 52 }