Просмотр исходного кода

10653 log failed login attempts on INFO (#10843)

* 10653 log failed login attempts on INFO

* 10653 use signal to log failed login attempts

* 10653 use signal to log failed login attempts

* Update netbox/users/signals.py

Co-authored-by: Jeremy Stretch <jstretch@ns1.com>

* Update netbox/users/apps.py

Co-authored-by: Jeremy Stretch <jstretch@ns1.com>

Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
Arthur Hanson 3 лет назад
Родитель
Сommit
de9646d096
3 измененных файлов с 19 добавлено и 1 удалено
  1. 8 0
      netbox/users/apps.py
  2. 10 0
      netbox/users/signals.py
  3. 1 1
      netbox/users/views.py

+ 8 - 0
netbox/users/apps.py

@@ -0,0 +1,8 @@
+from django.apps import AppConfig
+
+
+class UsersConfig(AppConfig):
+    name = 'users'
+
+    def ready(self):
+        import users.signals

+ 10 - 0
netbox/users/signals.py

@@ -0,0 +1,10 @@
+import logging
+from django.dispatch import receiver
+from django.contrib.auth.signals import user_login_failed
+
+
+@receiver(user_login_failed)
+def log_user_login_failed(sender, credentials, request, **kwargs):
+    logger = logging.getLogger('netbox.auth.login')
+    username = credentials.get("username")
+    logger.info(f"Failed login attempt for username: {username}")

+ 1 - 1
netbox/users/views.py

@@ -106,7 +106,7 @@ class LoginView(View):
             return self.redirect_to_next(request, logger)
 
         else:
-            logger.debug("Login form validation failed")
+            logger.debug(f"Login form validation failed for username: {form['username'].value()}")
 
         return render(request, self.template_name, {
             'form': form,