67 |
67 |
68 headers_in = dict((normalize_header(k[5:]), v) for k, v in self.environ.items() |
68 headers_in = dict((normalize_header(k[5:]), v) for k, v in self.environ.items() |
69 if k.startswith('HTTP_')) |
69 if k.startswith('HTTP_')) |
70 if 'CONTENT_TYPE' in environ: |
70 if 'CONTENT_TYPE' in environ: |
71 headers_in['Content-Type'] = environ['CONTENT_TYPE'] |
71 headers_in['Content-Type'] = environ['CONTENT_TYPE'] |
72 https = self.is_secure() |
|
73 if self.path.startswith('/https/'): |
|
74 self.path = self.path[6:] |
|
75 self.environ['PATH_INFO'] = self.path |
|
76 https = True |
|
77 |
72 |
78 post, files = self.get_posted_data() |
73 post, files = self.get_posted_data() |
79 |
74 |
80 super(CubicWebWsgiRequest, self).__init__(vreg, https, post, |
75 super(CubicWebWsgiRequest, self).__init__(vreg, post, |
81 headers= headers_in) |
76 headers= headers_in) |
82 self.content = environ['wsgi.input'] |
77 self.content = environ['wsgi.input'] |
83 if files is not None: |
78 if files is not None: |
84 for key, part in files.iterallitems(): |
79 for key, part in files.iterallitems(): |
85 self.form.setdefault(key, []).append((part.filename, part.file)) |
80 self.form.setdefault(key, []).append((part.filename, part.file)) |
119 |
114 |
120 return path |
115 return path |
121 |
116 |
122 ## wsgi request helpers ################################################### |
117 ## wsgi request helpers ################################################### |
123 |
118 |
124 def is_secure(self): |
|
125 return self.environ['wsgi.url_scheme'] == 'https' |
|
126 |
|
127 def get_posted_data(self): |
119 def get_posted_data(self): |
128 # The WSGI spec says 'QUERY_STRING' may be absent. |
120 # The WSGI spec says 'QUERY_STRING' may be absent. |
129 post = parse_qs(self.environ.get('QUERY_STRING', '')) |
121 post = parse_qs(self.environ.get('QUERY_STRING', '')) |
130 files = None |
122 files = None |
131 if self.method == 'POST': |
123 if self.method == 'POST': |