Skip to content

Commit 49da99e

Browse files
fix diagnostic info in parse_verification_key
Signed-off-by: Achille Roussel <achille.roussel@gmail.com>
1 parent 50377d7 commit 49da99e

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/dispatch/fastapi.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def __init__(
8787
"missing FastAPI app as first argument of the Dispatch constructor"
8888
)
8989
super().__init__(endpoint, api_key=api_key, api_url=api_url)
90-
verification_key = parse_verification_key(verification_key, url_scheme=parsed_url.scheme)
90+
verification_key = parse_verification_key(verification_key, endpoint=endpoint)
9191
function_service = _new_app(self, verification_key)
9292
app.mount("/dispatch.sdk.v1.FunctionService", function_service)
9393

src/dispatch/signature/__init__.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import os
44
from datetime import datetime, timedelta
55
from typing import Optional, Sequence, Set, Union, cast
6+
from urllib.parse import urlparse
67

78
import http_sfv
89
from cryptography.hazmat.primitives.asymmetric.ed25519 import (
@@ -129,7 +130,7 @@ def extract_covered_components(result: VerifyResult) -> Set[str]:
129130

130131
def parse_verification_key(
131132
verification_key: Optional[Union[Ed25519PublicKey, str, bytes]],
132-
url_scheme: str | None = None,
133+
endpoint: Optional[str] = None,
133134
) -> Optional[Ed25519PublicKey]:
134135
# This function depends a lot on global context like enviornment variables
135136
# and logging configuration. It's not ideal for testing, but it's useful to
@@ -175,6 +176,14 @@ def parse_verification_key(
175176
raise ValueError(f"invalid verification key '{verification_key}'")
176177

177178
# Print diagostic information about the key, this is useful for debugging.
179+
url_scheme = ""
180+
if endpoint:
181+
try:
182+
parsed_url = urlparse(endpoint)
183+
url_scheme = parsed_url.scheme
184+
except:
185+
pass
186+
178187
if public_key:
179188
base64_key = base64.b64encode(public_key.public_bytes_raw()).decode()
180189
logger.info("verifying request signatures using key %s", base64_key)

0 commit comments

Comments
 (0)