Partage
  • Partager sur Facebook
  • Partager sur Twitter

SF5 - La debug toolbar bug erreur 503

Sujet résolu
    2 décembre 2020 à 1:54:42

    Bonjour,

    J'ai mis en place un système de maintenance sur mon site Symfony 5 via un listener :

    <?php
    namespace App\Listener;
    
    use Twig\Environment;
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\HttpFoundation\RequestStack;
    use Symfony\Component\HttpKernel\Event\RequestEvent;
    use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
    
    class MaintenanceListener
    {
        private $projectDirectory;
        private $maintenance;
        private $twig;
        private $tokenStorage;
        private $requestStack;
        
        public function __construct(string $projectDirectory, array $maintenance, Environment $twig, TokenStorageInterface $tokenStorage, RequestStack $requestStack)
        {
            $this->projectDirectory = $projectDirectory;
            $this->maintenance = $maintenance;
            $this->twig = $twig;
            $this->tokenStorage = $tokenStorage;
            $this->requestStack = $requestStack;
        }
        
        public function onKernelRequest(RequestEvent $event)
        {
            $user = null;
            $token = $this->tokenStorage->getToken();
    
            if (!file_exists($this->projectDirectory. DIRECTORY_SEPARATOR . '.lock')) {
                return;
            }
    
            $currentRoute = $this->requestStack->getCurrentRequest()->attributes->get('_route');
    
            if (file_exists($this->projectDirectory. DIRECTORY_SEPARATOR . '.lock') && $currentRoute === $this->maintenance['urlAuthorized']) {
                return;
            }
    
            if ($token) {
    
                $user = $token->getUser();
    
                if (is_object($user)) {
    
                    if (file_exists($this->projectDirectory. DIRECTORY_SEPARATOR . '.lock') && in_array($this->maintenance['userAuthorized'],  $user->getRoles())) {
                        return;
                    }
                }
            }
    
            $render = $this->twig->render('default/temporary.html.twig');
            
            $event->setResponse(new Response($render, Response::HTTP_SERVICE_UNAVAILABLE));
            $event->stopPropagation();
        }
    }

    Le problème est que la toolbar m'affiche "An error occurred while loading the web debug toolbar." avec l'erreur code 503. Voici le log :

    Dec  2 01:48:15 |ERROR  | SERVER GET  (503) /_wdt/3ffc23 ip="127.0.0.1"

    J'ai tenté de mettre HTTP_OK à la place de HTTP_SERVICE_UNAVAILABLE mais là elle disparait carrément.

    Et quand je supprimer le script... Ben elle marche bien.

    Comment puis-je faire pour mettre en place mon système de maintenance avec la toolbar qui marche ?

    Merci.

    • Partager sur Facebook
    • Partager sur Twitter
      2 décembre 2020 à 8:48:28

      Hello,

      Ton script il n'autorise qu'une seule URL c'est ça ?

      Si c'est le cas, c'est normale non ?

      • Partager sur Facebook
      • Partager sur Twitter
      $2b||!$2b
      Anonyme
        2 décembre 2020 à 9:48:58

        Et à quoi ça rime de retester les mêmes choses encore et encore ? 🤔
        • Partager sur Facebook
        • Partager sur Twitter
          3 décembre 2020 à 10:27:26

          J'ai réglé mon problème en ajoutant la route de la debug toolbar _wdt dans mes url authorisées.

          -
          Edité par YinYang2 3 décembre 2020 à 11:01:18

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            3 décembre 2020 à 11:03:54

            Tu testes trois fois l'existence du fichier .lock.

            Et la debug bar est publique par défaut ; tu as probablement un firewall qui désactive la sécurité pour son URL et celles du profiler.

            Mais ça ne devrait pas poser problème puisque ça n'est pas fait pour être utilisé en production. 

            • Partager sur Facebook
            • Partager sur Twitter

            SF5 - La debug toolbar bug erreur 503

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown