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 @@ ...@@ -3,5 +3,6 @@
"bind_password": "thisisthebindpassword", "bind_password": "thisisthebindpassword",
"api_baseurl": "http://localhost:5000/api/v1", "api_baseurl": "http://localhost:5000/api/v1",
"api_key": "secretapikey", "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 --extra-index-url https://git.cccv.de/api/v4/projects/220/packages/pypi/simple
ldapserver==0.0.1.dev3 ldapserver==0.0.1.dev3
CacheControl
...@@ -2,6 +2,8 @@ import sys ...@@ -2,6 +2,8 @@ import sys
import json import json
import socketserver import socketserver
import requests import requests
from cachecontrol import CacheControl
from cachecontrol.heuristics import ExpiresAfter
from ldapserver import SimpleLDAPRequestHandler from ldapserver import SimpleLDAPRequestHandler
from ldapserver.dn import DN, RDN from ldapserver.dn import DN, RDN
...@@ -12,10 +14,10 @@ from ldapserver.exceptions import LDAPInvalidCredentials ...@@ -12,10 +14,10 @@ from ldapserver.exceptions import LDAPInvalidCredentials
from ldapserver.schema import RFC2307BIS_SUBSCHEMA from ldapserver.schema import RFC2307BIS_SUBSCHEMA
class UffdAPI: class UffdAPI:
def __init__(self, baseurl, key): def __init__(self, baseurl, key, cache_ttl=60):
self.baseurl = baseurl self.baseurl = baseurl
self.key = key self.key = key
self.session = requests.Session() self.session = CacheControl(requests.Session(), heuristic=ExpiresAfter(seconds=cache_ttl))
self.session.headers['Authorization'] = 'Bearer '+self.key self.session.headers['Authorization'] = 'Bearer '+self.key
def get(self, endpoint, **kwargs): def get(self, endpoint, **kwargs):
...@@ -191,7 +193,7 @@ class RequestHandler(SimpleLDAPRequestHandler): ...@@ -191,7 +193,7 @@ class RequestHandler(SimpleLDAPRequestHandler):
def main(config): def main(config):
dn_base = DN(config['dn_base']) 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) user_directory = UserDirectory(api, dn_base)
group_directory = GroupDirectory(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.
Finish editing this message first!
Please register or to comment