bundles/Jabber/WebthinkingBundle/EventListener/SecurityListener.php line 10

Open in your IDE?
  1. <?php 
  2. namespace Jabber\WebthinkingBundle\EventListener;
  3. use Symfony\Component\HttpKernel\Event\ControllerArgumentsEvent;
  4. use Jabber\WebthinkingBundle\Security\BasicAuthenticator;
  5. class SecurityListener {
  6.     public function onKernelControllerArguments(ControllerArgumentsEvent $event) {
  7.         // get controller and request arguments
  8.         // $namedArguments = $event->getRequest()->attributes->all();
  9.         // $controllerArguments = $event->getArguments()[0];
  10.         // $attributes = $controllerArguments->get('attributes');
  11.         $this->AuthorizeRequest($event->getRequest()->attributes->get('_controller'), $event->getRequest());
  12.         $event->request $this->ContentTypeCheck($event->getRequest());
  13.         
  14.         //get_class_methods($controllerArguments);
  15.         //$params = $attributes->parameters;
  16.         // $allHeaders = $event->getRequest()->headers->all();
  17.         // // if (str_starts_with($controllerArguments[0]['attributes']['parameters']['_controller'], "Jabber\\RestApiBundle")) {
  18.         //     $controller = $event->getRequest()->attributes->get('_controller');
  19.         //     if (!empty($event->getRequest()->headers->get('authorization'))) {
  20.         //         $foobar = "abc";
  21.         //     }
  22.         // }
  23.     }
  24.     private function AuthorizeRequest($controller$request) {
  25.         if (str_starts_with($controller'Jabber\WebthinkingBundle')) {
  26.             $auth = new BasicAuthenticator();
  27.             $auth->authenticate($request);
  28.         }
  29.     }
  30.     /**
  31.      * Converts JSON requests to parameters
  32.      *
  33.      * @param Request $request
  34.      * @return Request
  35.      */
  36.     private function ContentTypeCheck($request) {
  37.         if ($request->getContentType() == 'json') {
  38.             $request->request->replace(json_decode($request->getContent(), true));
  39.         }
  40.         return $request;
  41.     }
  42. }