Skip to content

Commit adde923

Browse files
authored
Merge pull request #4795 from dojutsu-user/raise-404-at-subdomain-middleware
Raise 404 at SubdomainMiddleware if the project does not exist.
2 parents 7202e08 + acb4070 commit adde923

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

readthedocs/core/middleware.py

+2
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ def process_request(self, request):
7171
# Support ports during local dev
7272
public_domain in host or public_domain in full_host
7373
):
74+
if not Project.objects.filter(slug=subdomain).exists():
75+
raise Http404(_('Project not found'))
7476
request.subdomain = True
7577
request.slug = subdomain
7678
request.urlconf = SUBDOMAIN_URLCONF

readthedocs/rtd_tests/tests/test_middleware.py

+7
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,13 @@ def test_proper_subdomain(self):
4747
self.assertEqual(request.urlconf, self.urlconf_subdomain)
4848
self.assertEqual(request.slug, 'pip')
4949

50+
@override_settings(PRODUCTION_DOMAIN='readthedocs.org')
51+
def test_wrong_subdomain(self):
52+
http_host = 'xyz-wrong-sub-domain-xyz.readthedocs.org'
53+
request = self.factory.get(self.url, HTTP_HOST=http_host)
54+
with self.assertRaises(Http404):
55+
self.middleware.process_request(request)
56+
5057
@override_settings(PRODUCTION_DOMAIN='readthedocs.org')
5158
def test_restore_urlconf_after_request(self):
5259
"""

0 commit comments

Comments
 (0)