diff options
Diffstat (limited to 'gn_auth/errors/http/http_4xx_errors.py')
-rw-r--r-- | gn_auth/errors/http/http_4xx_errors.py | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/gn_auth/errors/http/http_4xx_errors.py b/gn_auth/errors/http/http_4xx_errors.py index 704f11b..3a2ed88 100644 --- a/gn_auth/errors/http/http_4xx_errors.py +++ b/gn_auth/errors/http/http_4xx_errors.py @@ -1,31 +1,23 @@ """Handlers for HTTP 4** errors""" import logging -from werkzeug.exceptions import NotFound -from flask import request, jsonify, render_template +from werkzeug.exceptions import NotFound, Forbidden, Unauthorized -from gn_auth.errors.tracing import add_trace +from gn_auth.errors.common import build_handler __all__ = ["http_4xx_error_handlers"] logger = logging.getLogger(__name__) -def page_not_found(exc): - """404 handler.""" - logger.error("Page '%s' was not found.", request.url, exc_info=True) - content_type = request.content_type - if bool(content_type) and content_type.lower() == "application/json": - return jsonify(add_trace(exc, { - "error": exc.name, - "error_description": (f"The page '{request.url}' does not exist on " - "this server.") - })), exc.code - - return render_template("404.html", page=request.url), exc.code - def http_4xx_error_handlers() -> dict: """Return handlers for HTTP errors in the 400-499 range""" return { - NotFound: page_not_found + Forbidden: build_handler( + "You do not have the necessary privileges to access the requested " + "resource."), + NotFound: build_handler( + "The requested page does not exist on this server."), + Unauthorized: build_handler( + "You are not authorised to access the requested resource.") } |