diff --git a/jwt_proxy/api.py b/jwt_proxy/api.py index 8ad8c03..4675554 100644 --- a/jwt_proxy/api.py +++ b/jwt_proxy/api.py @@ -1,20 +1,13 @@ -from flask import Blueprint, abort, current_app, jsonify, request +from flask import Blueprint, abort, current_app, jsonify, request, json as flask_json import jwt import requests import json -from flask.json.provider import DefaultJSONProvider from jwt_proxy.audit import audit_HAPI_change blueprint = Blueprint('auth', __name__) SUPPORTED_METHODS = ('GET', 'POST', 'PUT', 'DELETE', 'OPTIONS') -# Workaround no JSON representation for datetime.timedelta -class CustomJSONProvider(DefaultJSONProvider): - @staticmethod - def default(obj): - return "Not_None" - def proxy_request(req, upstream_url, user_info=None): """Forward request to given url""" @@ -101,6 +94,14 @@ def smart_configuration(): @blueprint.route("/settings/") def config_settings(config_key): """Non-secret application settings""" + + # workaround no JSON representation for datetime.timedelta + class CustomJSONEncoder(flask_json.JSONEncoder): + def default(self, obj): + return str(obj) + + current_app.json_encoder = CustomJSONEncoder + # return selective keys - not all can be be viewed by users, e.g.secret key blacklist = ("SECRET", "KEY")