requestStack = $requestStack; $this->logger = $logger; } /** * {@inheritdoc} */ public static function getSubscribedEvents() { return [ AuthenticationEvents::AUTHENTICATION_FAILURE => 'onAuthenticationFailure', ]; } /** * On failure, add a custom error in log so server admin can configure fail2ban to block IP from people who try to login too much. */ public function onAuthenticationFailure() { $request = $this->requestStack->getMasterRequest(); $this->logger->error('Authentication failure for user "'.$request->request->get('_username').'", from IP "'.$request->getClientIp().'", with UA: "'.$request->server->get('HTTP_USER_AGENT').'".'); } }