root / middleware / __init__.py @ 8b471ee6
History | View | Annotate | Download (744 Bytes)
1 | 3758cc42 | Faidon Liambotis | # vim: ts=4 sts=4 et ai sw=4 fileencoding=utf-8
|
---|---|---|---|
2 | 3758cc42 | Faidon Liambotis | #
|
3 | 3758cc42 | Faidon Liambotis | # Copyright © 2010 Greek Research and Technology Network
|
4 | 3758cc42 | Faidon Liambotis | #
|
5 | 3758cc42 | Faidon Liambotis | |
6 | 3758cc42 | Faidon Liambotis | import re |
7 | 3758cc42 | Faidon Liambotis | |
8 | 3758cc42 | Faidon Liambotis | _strip_url_re = re.compile(r'^https?://[^/]+')
|
9 | 3758cc42 | Faidon Liambotis | |
10 | 3758cc42 | Faidon Liambotis | class StripURLMiddleware(object): |
11 | 3758cc42 | Faidon Liambotis | """
|
12 | 3758cc42 | Faidon Liambotis | At least some Cloud Servers API clients tend to use full URLs as request
|
13 | 3758cc42 | Faidon Liambotis | paths, contrary to all RFCs.
|
14 | 3758cc42 | Faidon Liambotis |
|
15 | 3758cc42 | Faidon Liambotis | This is a) wrong, b) incompatible with Django's urlconf.
|
16 | 3758cc42 | Faidon Liambotis |
|
17 | 3758cc42 | Faidon Liambotis | This middleware attempts to strip such URLs so that the URL dispatcher can
|
18 | 3758cc42 | Faidon Liambotis | process it normally.
|
19 | 3758cc42 | Faidon Liambotis |
|
20 | 3758cc42 | Faidon Liambotis | It should be inserted as early as possible in MIDDLEWARE_CLASSES
|
21 | 3758cc42 | Faidon Liambotis | """
|
22 | 3758cc42 | Faidon Liambotis | |
23 | 3758cc42 | Faidon Liambotis | def process_request(self, request): |
24 | 3758cc42 | Faidon Liambotis | request.path = re.sub(_strip_url_re, '', request.path)
|
25 | 3758cc42 | Faidon Liambotis | request.path_info = re.sub(_strip_url_re, '', request.path_info) |