Kaydet (Commit) e6dd70b4 authored tarafından Claude Paroz's avatar Claude Paroz

Fixed #21383 -- Added request details in SuspiciousOperation messages

üst 7e714827
...@@ -174,7 +174,12 @@ class BaseHandler(object): ...@@ -174,7 +174,12 @@ class BaseHandler(object):
# The security logger receives events for all SuspiciousOperations # The security logger receives events for all SuspiciousOperations
security_logger = logging.getLogger('django.security.%s' % security_logger = logging.getLogger('django.security.%s' %
e.__class__.__name__) e.__class__.__name__)
security_logger.error(force_text(e)) security_logger.error(
force_text(e),
extra={
'status_code': 400,
'request': request
})
try: try:
callback, param_dict = resolver.resolve400() callback, param_dict = resolver.resolve400()
......
...@@ -407,8 +407,8 @@ def patch_logger(logger_name, log_level): ...@@ -407,8 +407,8 @@ def patch_logger(logger_name, log_level):
""" """
calls = [] calls = []
def replacement(msg): def replacement(msg, *args, **kwargs):
calls.append(msg) calls.append(msg % args)
logger = logging.getLogger(logger_name) logger = logging.getLogger(logger_name)
orig = getattr(logger, log_level) orig = getattr(logger, log_level)
setattr(logger, log_level, replacement) setattr(logger, log_level, replacement)
......
...@@ -370,3 +370,12 @@ class SecurityLoggerTest(TestCase): ...@@ -370,3 +370,12 @@ class SecurityLoggerTest(TestCase):
self.client.get('/suspicious_spec/') self.client.get('/suspicious_spec/')
self.assertEqual(len(calls), 1) self.assertEqual(len(calls), 1)
self.assertEqual(calls[0], 'dubious') self.assertEqual(calls[0], 'dubious')
@override_settings(
ADMINS=(('admin', 'admin@example.com'),),
DEBUG=False,
)
def test_suspicious_email_admins(self):
self.client.get('/suspicious/')
self.assertEqual(len(mail.outbox), 1)
self.assertIn('path:/suspicious/,', mail.outbox[0].body)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment