Opened 9 years ago
Closed 9 years ago
#27853 closed Bug (duplicate)
When AdminEmailHandler is configured with include_html, DisallowedHost causes a 500 instead of a 400
| Reported by: | Douglas Thrift | Owned by: | nobody |
|---|---|---|---|
| Component: | Error reporting | Version: | 1.8 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
It looks like when AdminEmailHandler is configured with include_html a DisallowedHost causes a 500 instead of a 400 because it is trying to render the HTML error page for that to include in the email, but trying to render that HTML is triggering its own DisallowedHost because it thinks it is being requested by the same disallowed host rather than ignoring it since it is rendering for an email.
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/wsgiref/handlers.py", line 85, in run
self.result = application(self.environ, self.start_response)
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 189, in __call__
response = self.get_response(request)
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 204, in get_response
'request': request
File "/usr/local/lib/python2.7/logging/__init__.py", line 1193, in error
self._log(ERROR, msg, args, **kwargs)
File "/usr/local/lib/python2.7/logging/__init__.py", line 1286, in _log
self.handle(record)
File "/usr/local/lib/python2.7/logging/__init__.py", line 1296, in handle
self.callHandlers(record)
File "/usr/local/lib/python2.7/logging/__init__.py", line 1336, in callHandlers
hdlr.handle(record)
File "/usr/local/lib/python2.7/logging/__init__.py", line 759, in handle
self.emit(record)
File "/usr/local/lib/python2.7/site-packages/django/utils/log.py", line 128, in emit
html_message = reporter.get_traceback_html() if self.include_html else None
File "/usr/local/lib/python2.7/site-packages/django/views/debug.py", line 384, in get_traceback_html
return t.render(c)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 210, in render
return self._render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 202, in _render
return self.nodelist.render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 905, in render
bit = self.render_node(node, context)
File "/usr/local/lib/python2.7/site-packages/django/template/debug.py", line 79, in render_node
return node.render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 329, in render
return nodelist.render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 905, in render
bit = self.render_node(node, context)
File "/usr/local/lib/python2.7/site-packages/django/template/debug.py", line 79, in render_node
return node.render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/debug.py", line 89, in render
output = self.filter_expression.resolve(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 648, in resolve
obj = self.var.resolve(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 789, in resolve
value = self._resolve_lookup(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 849, in _resolve_lookup
current = current()
File "/usr/local/lib/python2.7/site-packages/django/http/request.py", line 152, in build_absolute_uri
host=self.get_host(),
File "/usr/local/lib/python2.7/site-packages/django/http/request.py", line 102, in get_host
raise DisallowedHost(msg)
DisallowedHost: Invalid HTTP_HOST header: 'localhost:8000'. You may need to add u'localhost' to ALLOWED_HOSTS.
[17/Feb/2017 06:48:12] "GET / HTTP/1.1" 500 59
Change History (1)
comment:1 by , 9 years ago
| Component: | Core (Mail) → Error reporting |
|---|---|
| Resolution: | → duplicate |
| Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Duplicate of #25099 (see ticket:25099#comment:9). It's fixed in Django 1.9.