From 5534d08e5597ec1b4f998aaf262d0e42527714ab Mon Sep 17 00:00:00 2001
From: Martin van Es <martin@mrvanes.com>
Date: Thu, 11 Nov 2021 14:04:03 +0100
Subject: [PATCH] Add mdproxy.py

---
 mdproxy.py       | 30 ++++++++++++++++++++++++++++++
 requirements.txt |  1 +
 2 files changed, 31 insertions(+)
 create mode 100755 mdproxy.py

diff --git a/mdproxy.py b/mdproxy.py
new file mode 100755
index 0000000..ed35ae2
--- /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 8d90b7e..18520a3 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,4 @@
 lxml
 signxml
 flask
+requests
-- 
GitLab