Skip to content

Commit 96e74c6

Browse files
Merge pull request #293 from minvws/feat/root-path
feat: root path on app
2 parents c7098ec + a66d60d commit 96e74c6

5 files changed

Lines changed: 14 additions & 3 deletions

File tree

app.conf.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ use_ssl = False
2525
ssl_base_dir = secrets/ssl
2626
ssl_cert_file = server.cert
2727
ssl_key_file = server.key
28+
# The root path if behind a proxy
29+
root_path =
2830

2931
[oprf]
3032
# Local key fallback: file with base64 server key (used when hsm_url is not set)

app/application.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ def setup_fastapi() -> FastAPI:
7878
title="Pseudoniemendienst API",
7979
summary="API for the Pseudoniemendienst",
8080
description="Provides endpoints for OPRF, key management, organization management, and RID exchange.",
81+
root_path=config.uvicorn.root_path,
8182
)
8283
if config.uvicorn.swagger_enabled
8384
else FastAPI(docs_url=None, redoc_url=None)

app/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ class ConfigUvicorn(BaseModel):
7676
ssl_base_dir: str | None = Field(default=None)
7777
ssl_cert_file: str | None = Field(default=None)
7878
ssl_key_file: str | None = Field(default=None)
79+
root_path: str = Field(default="")
7980

8081

8182
class ConfigOprf(BaseModel):

app/routers/exchange.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,10 @@ def receive(
155155
elif isinstance(pid, dict):
156156
personal_id = PersonalId.from_dict(pid)
157157
else:
158-
logger.warning("invalid personal_id format in RID payload: unexpected type %s", type(pid).__name__)
158+
logger.warning(
159+
"invalid personal_id format in RID payload: unexpected type %s",
160+
type(pid).__name__,
161+
)
159162
raise InvalidRID(message="Invalid personal_id format in RID payload")
160163
except Exception:
161164
logger.warning("failed to parse personal_id from RID payload")

app/services/oprf/oprf_service.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ def eval_blind(self, req: BlindRequest, pub_key: jwk.JWK) -> str:
4343
logger.exception("unable to evaluate blind")
4444
raise ValueError(f"unable to evaluate blind: {e}")
4545

46-
subject = "pseudonym:eval:" + base64.urlsafe_b64encode(eval_bytes).decode("utf-8")
46+
subject = "pseudonym:eval:" + base64.urlsafe_b64encode(eval_bytes).decode(
47+
"utf-8"
48+
)
4749
jwe = BlindJwe.build(
4850
audience=req.recipientOrganization,
4951
scope=req.recipientScope,
@@ -72,7 +74,9 @@ def _eval_via_hsm(self, recipient_org: str, blinded_bytes: bytes) -> bytes:
7274
},
7375
timeout=10,
7476
verify=cfg.hsm_ca_cert_file or True,
75-
cert=(cfg.hsm_cert_file, cfg.hsm_key_file) if (cfg.hsm_cert_file and cfg.hsm_key_file) else None,
77+
cert=(cfg.hsm_cert_file, cfg.hsm_key_file)
78+
if (cfg.hsm_cert_file and cfg.hsm_key_file)
79+
else None,
7680
)
7781
response.raise_for_status()
7882
return base64.b64decode(response.json()["result"])

0 commit comments

Comments
 (0)