diff --git a/jwt_proxy/api.py b/jwt_proxy/api.py index dc314c2..5523c1b 100644 --- a/jwt_proxy/api.py +++ b/jwt_proxy/api.py @@ -9,6 +9,14 @@ blueprint = Blueprint('auth', __name__) SUPPORTED_METHODS = ('GET', 'POST', 'PUT', 'DELETE', 'OPTIONS') +# Workaround no JSON representation for datetime.timedelta +class CustomJSONProvider(DefaultJSONProvider): + def __init__(self, app): + super().__init__(app) + + def default(self, o): + return str(o) + def proxy_request(req, upstream_url, user_info=None): """Forward request to given url""" @@ -95,17 +103,6 @@ def smart_configuration(): @blueprint.route("/settings/") def config_settings(config_key): """Non-secret application settings""" - - # workaround no JSON representation for datetime.timedelta - class CustomJSONProvider(DefaultJSONProvider): - def __init__(self, app): - super().__init__(app) - - def default(self, o): - return str(o) - - current_app.json = CustomJSONProvider - # return selective keys - not all can be be viewed by users, e.g.secret key blacklist = ("SECRET", "KEY") diff --git a/jwt_proxy/app.py b/jwt_proxy/app.py index 6a428c6..0b8a2e9 100644 --- a/jwt_proxy/app.py +++ b/jwt_proxy/app.py @@ -4,11 +4,12 @@ from jwt_proxy import api from jwt_proxy.audit import audit_log_init, audit_entry - +from jwt_proxy.api import CustomJSONProvider def create_app(testing=False, cli=False): """Application factory, used to create application""" app = Flask("jwt_proxy") + app.json = CustomJSONProvider register_blueprints(app) configure_app(app)