0
0
Fork 0
mirror of https://github.com/alerta/alerta.git synced 2025-02-05 14:09:44 +00:00
alerta_alerta/alerta/auth/hmac.py
2020-02-25 19:12:55 +01:00

25 lines
672 B
Python

from flask import Request, current_app
from mohawk import Receiver
def get_credentials(key_id: str):
credentials_map = {creds['id']: creds for creds in current_app.config['HMAC_AUTH_CREDENTIALS']}
if key_id in credentials_map:
return credentials_map[key_id]
else:
raise LookupError('Unknown sender')
class HmacAuth:
@staticmethod
def authenticate(r: Request):
return Receiver(
get_credentials,
r.headers.get('Authorization'),
url=r.url,
method=r.method,
content=r.data,
content_type=r.content_type,
timestamp_skew_in_seconds=300
)