From 135fab6c35dc2d51a62e1357fa8c7e08bc704b82 Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 4 Nov 2022 08:26:54 -0700 Subject: [PATCH 1/5] 10653 log failed login attempts on INFO --- netbox/users/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/users/views.py b/netbox/users/views.py index 33ef3fadd85..e24fb2d224d 100644 --- a/netbox/users/views.py +++ b/netbox/users/views.py @@ -106,7 +106,7 @@ def post(self, request): return self.redirect_to_next(request, logger) else: - logger.debug("Login form validation failed") + logger.info(f"Login form validation failed for username: {form['username'].value()}") return render(request, self.template_name, { 'form': form, From 8df162649b181ce76f8cf7fbb9228f53a3df6494 Mon Sep 17 00:00:00 2001 From: Arthur Date: Thu, 17 Nov 2022 13:10:46 -0800 Subject: [PATCH 2/5] 10653 use signal to log failed login attempts --- netbox/users/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/users/views.py b/netbox/users/views.py index e24fb2d224d..c688d6b4f29 100644 --- a/netbox/users/views.py +++ b/netbox/users/views.py @@ -106,7 +106,7 @@ def post(self, request): return self.redirect_to_next(request, logger) else: - logger.info(f"Login form validation failed for username: {form['username'].value()}") + logger.debug(f"Login form validation failed for username: {form['username'].value()}") return render(request, self.template_name, { 'form': form, From 6f908f8cbf404fd1e18c1aa875fc5b65132036ba Mon Sep 17 00:00:00 2001 From: Arthur Date: Thu, 17 Nov 2022 13:11:08 -0800 Subject: [PATCH 3/5] 10653 use signal to log failed login attempts --- netbox/users/apps.py | 8 ++++++++ netbox/users/signals.py | 10 ++++++++++ 2 files changed, 18 insertions(+) create mode 100644 netbox/users/apps.py create mode 100644 netbox/users/signals.py diff --git a/netbox/users/apps.py b/netbox/users/apps.py new file mode 100644 index 00000000000..6dff227d6d4 --- /dev/null +++ b/netbox/users/apps.py @@ -0,0 +1,8 @@ +from django.apps import AppConfig + + +class HomeConfig(AppConfig): + name = 'users' + + def ready(self): + import users.signals diff --git a/netbox/users/signals.py b/netbox/users/signals.py new file mode 100644 index 00000000000..ec7e113859a --- /dev/null +++ b/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", None) + logger.info(f"Failed login attempt for username: {username}") From 1135019d0244992c312bb10305b729f490ee140a Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Thu, 17 Nov 2022 16:46:30 -0800 Subject: [PATCH 4/5] Update netbox/users/signals.py Co-authored-by: Jeremy Stretch --- netbox/users/signals.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/users/signals.py b/netbox/users/signals.py index ec7e113859a..8915af1dcda 100644 --- a/netbox/users/signals.py +++ b/netbox/users/signals.py @@ -6,5 +6,5 @@ @receiver(user_login_failed) def log_user_login_failed(sender, credentials, request, **kwargs): logger = logging.getLogger('netbox.auth.login') - username = credentials.get("username", None) + username = credentials.get("username") logger.info(f"Failed login attempt for username: {username}") From 1cdd11045303670e4230a4cf8bceeefab6b3d1b0 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Thu, 17 Nov 2022 16:46:48 -0800 Subject: [PATCH 5/5] Update netbox/users/apps.py Co-authored-by: Jeremy Stretch --- netbox/users/apps.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/users/apps.py b/netbox/users/apps.py index 6dff227d6d4..b8d67f1c34e 100644 --- a/netbox/users/apps.py +++ b/netbox/users/apps.py @@ -1,7 +1,7 @@ from django.apps import AppConfig -class HomeConfig(AppConfig): +class UsersConfig(AppConfig): name = 'users' def ready(self):