Compare commits
2 commits
223108004f
...
f54ef4a662
Author | SHA1 | Date | |
---|---|---|---|
f54ef4a662 | |||
ff8a91599a |
1 changed files with 5 additions and 4 deletions
|
@ -3,7 +3,7 @@ import hmac
|
|||
import hashlib
|
||||
import json
|
||||
from collections import defaultdict
|
||||
from flask import Flask, request, abort
|
||||
from flask import Flask, request
|
||||
from .conf import Configuration
|
||||
|
||||
config = Configuration()
|
||||
|
@ -19,12 +19,12 @@ def webhook_receiver(hook_type):
|
|||
def inner(func):
|
||||
def wrapped(hook_name: str):
|
||||
if request.content_length is None or request.content_length > 32000:
|
||||
abort(400)
|
||||
return "Too much content", 400
|
||||
if request.content_type != "application/json":
|
||||
return "Expected json", 415
|
||||
|
||||
if hook_name not in relevant_hooks:
|
||||
abort(404)
|
||||
return "No such hook", 404
|
||||
hook_conf = relevant_hooks[hook_name]
|
||||
|
||||
raw_payload: bytes = request.get_data(cache=False)
|
||||
|
@ -33,7 +33,7 @@ def webhook_receiver(hook_type):
|
|||
hook_conf["secret"].encode("utf-8"), raw_payload, hashlib.sha256
|
||||
).hexdigest()
|
||||
if not hmac.compare_digest(provided_sig, computed_sig):
|
||||
abort(403)
|
||||
return "Bad credentials", 403
|
||||
|
||||
try:
|
||||
payload = json.loads(raw_payload)
|
||||
|
@ -60,6 +60,7 @@ def fifo_hooks(payload, hook_name, hook_conf):
|
|||
try:
|
||||
with open(hook_conf["fifo_path"], "w") as fifo:
|
||||
fifo.write("1")
|
||||
print(f"Written to {hook_conf['fifo_path']}")
|
||||
except FileNotFoundError:
|
||||
return "No such fifo", 500
|
||||
except PermissionError:
|
||||
|
|
Loading…
Reference in a new issue