[perf] activity auth & logger
This commit is contained in:
parent
03af5cedb7
commit
cb2d3fd580
2 changed files with 27 additions and 3 deletions
|
@ -3,6 +3,8 @@
|
||||||
import httpx
|
import httpx
|
||||||
from demo import config
|
from demo import config
|
||||||
from demo.utils.key import get_pubkey_as_pem
|
from demo.utils.key import get_pubkey_as_pem
|
||||||
|
from demo.httpsig import auth
|
||||||
|
from loguru import logger
|
||||||
|
|
||||||
|
|
||||||
AS_CTX = "https://www.w3.org/ns/activitystreams"
|
AS_CTX = "https://www.w3.org/ns/activitystreams"
|
||||||
|
@ -63,7 +65,7 @@ def fetch(
|
||||||
url: str,
|
url: str,
|
||||||
) -> dict:
|
) -> dict:
|
||||||
"""Fetch url and return json"""
|
"""Fetch url and return json"""
|
||||||
print(f"fetch {url}")
|
logger.debug(f"fetch {url}")
|
||||||
|
|
||||||
with httpx.Client() as client:
|
with httpx.Client() as client:
|
||||||
resp = client.get(
|
resp = client.get(
|
||||||
|
@ -75,3 +77,24 @@ def fetch(
|
||||||
)
|
)
|
||||||
|
|
||||||
return resp.json()
|
return resp.json()
|
||||||
|
|
||||||
|
|
||||||
|
def post(
|
||||||
|
url: str,
|
||||||
|
payload : dict,
|
||||||
|
) -> httpx.Response :
|
||||||
|
logger.debug(f"send post, {payload=}")
|
||||||
|
|
||||||
|
with httpx.Client() as client:
|
||||||
|
resp = client.post(
|
||||||
|
url,
|
||||||
|
headers={
|
||||||
|
"User-Agent": config.USER_AGENT,
|
||||||
|
"Content-Type": config.AP_CONTENT_TYPE,
|
||||||
|
},
|
||||||
|
json=payload,
|
||||||
|
auth=auth,
|
||||||
|
)
|
||||||
|
|
||||||
|
resp.raise_for_status()
|
||||||
|
return resp
|
||||||
|
|
|
@ -136,7 +136,7 @@ class HTTPXSigAuth(httpx.Auth):
|
||||||
else:
|
else:
|
||||||
sigheaders = "(request-target) user-agent host date accept"
|
sigheaders = "(request-target) user-agent host date accept"
|
||||||
|
|
||||||
logger.warning(request.headers)
|
logger.info(request.headers)
|
||||||
|
|
||||||
sigdate = SignedData(
|
sigdate = SignedData(
|
||||||
method = request.method,
|
method = request.method,
|
||||||
|
@ -150,13 +150,14 @@ class HTTPXSigAuth(httpx.Auth):
|
||||||
sigdate
|
sigdate
|
||||||
)
|
)
|
||||||
|
|
||||||
|
logger.debug(f"{to_be_signed}")
|
||||||
|
|
||||||
if not self.key:
|
if not self.key:
|
||||||
raise ValueError("Should never happen")
|
raise ValueError("Should never happen")
|
||||||
signer = PKCS1_v1_5.new(self.key)
|
signer = PKCS1_v1_5.new(self.key)
|
||||||
digest = SHA256.new()
|
digest = SHA256.new()
|
||||||
digest.update(to_be_signed.encode("utf-8"))
|
digest.update(to_be_signed.encode("utf-8"))
|
||||||
sig = base64.b64encode(signer.sign(digest))
|
sig = base64.b64encode(signer.sign(digest))
|
||||||
logger.debug(f"{sig=}")
|
|
||||||
|
|
||||||
|
|
||||||
key_id = f"{ID}#main-key"
|
key_id = f"{ID}#main-key"
|
||||||
|
|
Loading…
Reference in a new issue