diff --git a/mdproxy.py b/mdproxy.py new file mode 100755 index 0000000000000000000000000000000000000000..ed35ae225800aea37b332fc9608cb3b8b7bb8a55 --- /dev/null +++ b/mdproxy.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python + +from flask import Flask, request +from urllib.parse import unquote +import requests +# import traceback + +app = Flask(__name__) + + +# Find all IdP's in edugain metadata +cached = {} +signer = 'http://localhost:5001/sign' + + +@app.route('/cache', methods=['GET']) +def cache(): + global cached + entity = unquote(request.args.get('id')) + if entity in cached: + print(f"serve {entity}") + return cached[entity] + else: + print(f"request {entity}") + result = requests.get(f"{signer}?id={entity}").text + cached[entity] = result + return result + + +app.run(host='0.0.0.0', port=5002) diff --git a/requirements.txt b/requirements.txt index 8d90b7ea6b98011c79fdcf7e2ac890cac72d1af9..18520a310defae0bb031e9df6353facfa1f17bb5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ lxml signxml flask +requests