Skip to content
Snippets Groups Projects
Commit f05dfb70 authored by Julian Rother's avatar Julian Rother
Browse files

Added http request caching with cachecontrol

parent b59b89c8
No related branches found
No related tags found
No related merge requests found
......@@ -3,5 +3,6 @@
"bind_password": "thisisthebindpassword",
"api_baseurl": "http://localhost:5000/api/v1",
"api_key": "secretapikey",
"listen_addr": "127.0.0.1:3389"
"listen_addr": "127.0.0.1:3389",
"cache_ttl": 60
}
--extra-index-url https://git.cccv.de/api/v4/projects/220/packages/pypi/simple
ldapserver==0.0.1.dev3
CacheControl
......@@ -2,6 +2,8 @@ import sys
import json
import socketserver
import requests
from cachecontrol import CacheControl
from cachecontrol.heuristics import ExpiresAfter
from ldapserver import SimpleLDAPRequestHandler
from ldapserver.dn import DN, RDN
......@@ -12,10 +14,10 @@ from ldapserver.exceptions import LDAPInvalidCredentials
from ldapserver.schema import RFC2307BIS_SUBSCHEMA
class UffdAPI:
def __init__(self, baseurl, key):
def __init__(self, baseurl, key, cache_ttl=60):
self.baseurl = baseurl
self.key = key
self.session = requests.Session()
self.session = CacheControl(requests.Session(), heuristic=ExpiresAfter(seconds=cache_ttl))
self.session.headers['Authorization'] = 'Bearer '+self.key
def get(self, endpoint, **kwargs):
......@@ -191,7 +193,7 @@ class RequestHandler(SimpleLDAPRequestHandler):
def main(config):
dn_base = DN(config['dn_base'])
api = UffdAPI(config['api_baseurl'], config['api_key'])
api = UffdAPI(config['api_baseurl'], config['api_key'], config.get('cache_ttl', 60))
user_directory = UserDirectory(api, dn_base)
group_directory = GroupDirectory(api, dn_base)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment