Python web.HTTPError() Examples
The following are 15
code examples of web.HTTPError().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
web
, or try the search function
.
Example #1
Source File: utils.py From rucio with Apache License 2.0 | 6 votes |
def generate_http_error(status_code, exc_cls, exc_msg): """ utitily function to generate a complete HTTP error response. :param status_code: The HTTP status code to generate a response for. :param exc_cls: The name of the exception class to send with the response. :param exc_msg: The error message. :returns: a web.py HTTP response object. """ status = codes[status_code] data = {'ExceptionClass': exc_cls, 'ExceptionMessage': exc_msg} # Truncate too long exc_msg if len(str(exc_msg)) > 15000: exc_msg = str(exc_msg)[:15000] headers = {'Content-Type': 'application/octet-stream', 'ExceptionClass': exc_cls, 'ExceptionMessage': clean_headers(exc_msg)} try: return HTTPError(status, headers=headers, data=render_json(**data)) except Exception: print({'Content-Type': 'application/octet-stream', 'ExceptionClass': exc_cls, 'ExceptionMessage': str(exc_msg).strip()}) raise
Example #2
Source File: s3server.py From honeything with GNU General Public License v3.0 | 6 votes |
def put(self, bucket, object_name): object_name = urllib.unquote(object_name) bucket_dir = os.path.abspath(os.path.join( self.application.directory, bucket)) if not bucket_dir.startswith(self.application.directory) or \ not os.path.isdir(bucket_dir): raise web.HTTPError(404) path = self._object_path(bucket, object_name) if not path.startswith(bucket_dir) or os.path.isdir(path): raise web.HTTPError(403) directory = os.path.dirname(path) if not os.path.exists(directory): os.makedirs(directory) object_file = open(path, "w") object_file.write(self.request.body) object_file.close() self.finish()
Example #3
Source File: tasks.py From INGInious with GNU Affero General Public License v3.0 | 5 votes |
def GET(self, courseid, taskid, path): # pylint: disable=arguments-differ """ GET request """ try: course = self.course_factory.get_course(courseid) if not self.user_manager.course_is_open_to_user(course): return handle_course_unavailable(self.app.get_homepath(), self.template_helper, self.user_manager, course) path_norm = posixpath.normpath(urllib.parse.unquote(path)) if taskid == "$common": public_folder = course.get_fs().from_subfolder("$common").from_subfolder("public") else: task = course.get_task(taskid) if not self.user_manager.task_is_visible_by_user(task): # ignore LTI check here return self.template_helper.get_renderer().task_unavailable() public_folder = task.get_fs().from_subfolder("public") (method, mimetype_or_none, file_or_url) = public_folder.distribute(path_norm, False) if method == "local": web.header('Content-Type', mimetype_or_none) return file_or_url elif method == "url": raise web.redirect(file_or_url) else: raise web.notfound() except web.HTTPError as error_or_redirect: raise error_or_redirect except: if web.config.debug: raise else: raise web.notfound()
Example #4
Source File: s3server.py From honeything with GNU General Public License v3.0 | 5 votes |
def put(self, bucket_name): path = os.path.abspath(os.path.join( self.application.directory, bucket_name)) if not path.startswith(self.application.directory) or \ os.path.exists(path): raise web.HTTPError(403) os.makedirs(path) self.finish()
Example #5
Source File: s3server.py From honeything with GNU General Public License v3.0 | 5 votes |
def delete(self, bucket_name): path = os.path.abspath(os.path.join( self.application.directory, bucket_name)) if not path.startswith(self.application.directory) or \ not os.path.isdir(path): raise web.HTTPError(404) if len(os.listdir(path)) > 0: raise web.HTTPError(403) os.rmdir(path) self.set_status(204) self.finish()
Example #6
Source File: s3server.py From honeything with GNU General Public License v3.0 | 5 votes |
def get(self, bucket, object_name): object_name = urllib.unquote(object_name) path = self._object_path(bucket, object_name) if not path.startswith(self.application.directory) or \ not os.path.isfile(path): raise web.HTTPError(404) info = os.stat(path) self.set_header("Content-Type", "application/unknown") self.set_header("Last-Modified", datetime.datetime.utcfromtimestamp( info.st_mtime)) object_file = open(path, "r") try: self.finish(object_file.read()) finally: object_file.close()
Example #7
Source File: auth.py From netflix-proxy with MIT License | 5 votes |
def csrf_protected(f): def decorated(*args, **kwargs): inp = web.input() if not ('csrf_token' in inp and inp.csrf_token == session.pop('csrf_token', None)): raise web.HTTPError( "400 Bad request", {'content-type':'text/html'}, """Cross-site request forgery (CSRF) attempt (or stale browser form). <a href="">Back to the form</a>.""") return f(*args, **kwargs) return decorated
Example #8
Source File: dbfs.py From asm3 with GNU General Public License v3.0 | 5 votes |
def __init__(self, msg): status = '500 Internal Server Error' headers = { 'Content-Type': "text/html" } data = "<h1>DBFS Error</h1><p>%s</p>" % msg web.HTTPError.__init__(self, status, headers, data)
Example #9
Source File: utils.py From asm3 with GNU General Public License v3.0 | 5 votes |
def __init__(self, msg): self.msg = msg status = '500 Internal Server Error' headers = { 'Content-Type': "text/html" } data = "<h1>Validation Error</h1><p>%s</p>" % msg if "headers" not in web.ctx: web.ctx.headers = [] web.HTTPError.__init__(self, status, headers, data)
Example #10
Source File: utils.py From asm3 with GNU General Public License v3.0 | 5 votes |
def __init__(self, msg): status = '500 Internal Server Error' headers = { 'Content-Type': "text/html" } data = "<h1>Permission Error</h1><p>%s</p>" % msg if "headers" not in web.ctx: web.ctx.headers = [] web.HTTPError.__init__(self, status, headers, data)
Example #11
Source File: utils.py From asm3 with GNU General Public License v3.0 | 5 votes |
def __init__(self, msg): status = '500 Internal Server Error' headers = { 'Content-Type': "text/html" } data = "<h1>Error</h1><p>%s</p>" % msg if "headers" not in web.ctx: web.ctx.headers = [] web.HTTPError.__init__(self, status, headers, data)
Example #12
Source File: utils.py From asm3 with GNU General Public License v3.0 | 5 votes |
def post_data(url, data, contenttype = "", httpmethod = "", headers = {}): """ Posts data (str or bytes) to a URL as the body httpmethod: POST by default. Returns dict of requestheaders (dict), requestbody (bytes), headers (str), response (str) and status (int) """ # PYTHON3 # Separate implementations here due to change in HTTPMessage response object # between 2 and 3. (.headers disappears to be replaced with as_string() due to new superclass) if sys.version_info[0] > 2: try: if contenttype != "": headers["Content-Type"] = contenttype if isinstance(data, str): data = str2bytes(data) req = urllib2.Request(url, data, headers) if httpmethod != "": req.get_method = lambda: httpmethod resp = urllib2.urlopen(req) return { "requestheaders": headers, "requestbody": data, "headers": resp.info().as_string(), "response": bytes2str(resp.read()), "status": resp.getcode() } except urllib2.HTTPError as e: return { "requestheaders": headers, "requestbody": data, "headers": e.info().as_string(), "response": bytes2str(e.read()), "status": e.getcode() } # PYTHON2 else: try: if contenttype != "": headers["Content-Type"] = contenttype req = urllib2.Request(url, data, headers) if httpmethod != "": req.get_method = lambda: httpmethod resp = urllib2.urlopen(req) return { "requestheaders": headers, "requestbody": data, "headers": resp.info().headers, "response": encode_html(cunicode(resp.read())), "status": resp.getcode() } except urllib2.HTTPError as e: return { "requestheaders": headers, "requestbody": data, "headers": e.info().headers, "response": encode_html(cunicode(e.read())), "status": e.getcode() }
Example #13
Source File: __init__.py From opennumber with GNU General Public License v3.0 | 5 votes |
def __init__(self, url, absolute=False): status = '303 See Other' newloc = url home = web.ctx.environ['HTTP_ORIGIN'] newloc = urlparse.urljoin(home, url) logger.info('seeother: %s', newloc) headers = { 'Content-Type': 'text/html', 'Location': newloc } web.webapi.HTTPError.__init__(self, status, headers, "") pass
Example #14
Source File: __init__.py From opennumber with GNU General Public License v3.0 | 5 votes |
def GET(self, *args, **kwargs): """ """ response = Response.internal_error() try: self.log_request() with models.Session() as orm: web.ctx.orm = orm response = self.get(*args, **kwargs) return response except: logger.exception('BaseHandler failure:') status = '500 InternalError' headers = {'Content-Type': 'text/html'} raise web.HTTPError(status, headers, 'internal error')
Example #15
Source File: s3server.py From honeything with GNU General Public License v3.0 | 4 votes |
def get(self, bucket_name): prefix = self.get_argument("prefix", u"") marker = self.get_argument("marker", u"") max_keys = int(self.get_argument("max-keys", 50000)) path = os.path.abspath(os.path.join(self.application.directory, bucket_name)) terse = int(self.get_argument("terse", 0)) if not path.startswith(self.application.directory) or \ not os.path.isdir(path): raise web.HTTPError(404) object_names = [] for root, dirs, files in os.walk(path): for file_name in files: object_names.append(os.path.join(root, file_name)) skip = len(path) + 1 for i in range(self.application.bucket_depth): skip += 2 * (i + 1) + 1 object_names = [n[skip:] for n in object_names] object_names.sort() contents = [] start_pos = 0 if marker: start_pos = bisect.bisect_right(object_names, marker, start_pos) if prefix: start_pos = bisect.bisect_left(object_names, prefix, start_pos) truncated = False for object_name in object_names[start_pos:]: if not object_name.startswith(prefix): break if len(contents) >= max_keys: truncated = True break object_path = self._object_path(bucket_name, object_name) c = {"Key": object_name} if not terse: info = os.stat(object_path) c.update({ "LastModified": datetime.datetime.utcfromtimestamp( info.st_mtime), "Size": info.st_size, }) contents.append(c) marker = object_name self.render_xml({"ListBucketResult": { "Name": bucket_name, "Prefix": prefix, "Marker": marker, "MaxKeys": max_keys, "IsTruncated": truncated, "Contents": contents, }})