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') . '".'); } }