<?php
namespace App\EventSubscriber;
use App\Service\DBLogService;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class RequestSubscriber implements EventSubscriberInterface
{
private DBLogService $DBLog;
public function __construct(DBLogService $DBLog)
{
$this->DBLog = $DBLog;
}
public function onKernelRequest(RequestEvent $event)
{
$method = $event->getRequest()->getMethod();
$uri = $event->getRequest()->getRequestUri();
$post_params = $event->getRequest()->request->all();
$get_params = $event->getRequest()->query->all();
$ip = $event->getRequest()->getClientIps();
if (isset($post_params['login_form'])) $post_params['login_form']['_password'] = '###';
if (isset($post_params['user_signup_form'])) $post_params['user_signup_form']['plainPassword'] = ['first' => '###', 'second' => '###'];
if (isset($post_params['user_edit_form'])) $post_params['user_edit_form']['plainPassword'] = ['first' => '###', 'second' => '###'];
$data = [$method, $uri, $post_params, $get_params, $ip];
if ($method === 'OPTIONS') {
return;
}
// $this->DBLog->debug('Event', 'Request', $data);
}
public static function getSubscribedEvents()
{
return array(
// must be registered before (i.e. with a higher priority than) the default Locale listener
KernelEvents::REQUEST => array(array('onKernelRequest', 110)),
);
}
}