From 9c748bf0ee3c07d0ed4475a54b8ced5cf9a9032b Mon Sep 17 00:00:00 2001 From: Fang-Pen Lin Date: Tue, 28 Oct 2025 19:24:53 -0700 Subject: [PATCH] Fix new account again --- backend/src/db/schemas/pki-acme-accounts.ts | 1 + backend/src/ee/routes/v1/pki-acme-router.ts | 10 ++++------ backend/src/ee/services/pki-acme/pki-acme-service.ts | 1 + backend/src/ee/services/pki-acme/pki-acme-types.ts | 1 - 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/backend/src/db/schemas/pki-acme-accounts.ts b/backend/src/db/schemas/pki-acme-accounts.ts index b599cec07..275ff7e7e 100644 --- a/backend/src/db/schemas/pki-acme-accounts.ts +++ b/backend/src/db/schemas/pki-acme-accounts.ts @@ -12,6 +12,7 @@ export const PkiAcmeAccountsSchema = z.object({ profileId: z.string().uuid(), emails: z.string().array(), publicKey: z.unknown(), + alg: z.string(), createdAt: z.date(), updatedAt: z.date() }); diff --git a/backend/src/ee/routes/v1/pki-acme-router.ts b/backend/src/ee/routes/v1/pki-acme-router.ts index cda0fc478..b60b13dde 100644 --- a/backend/src/ee/routes/v1/pki-acme-router.ts +++ b/backend/src/ee/routes/v1/pki-acme-router.ts @@ -110,7 +110,7 @@ export const registerPkiAcmeRouter = async (server: FastifyZodProvider) => { } }, handler: async (req, res) => { - const { payload, protectedHeader, jwk } = await server.services.pkiAcme.validateJwsPayload( + const { payload, protectedHeader } = await server.services.pkiAcme.validateJwsPayload( req.body as TRawJwsPayload, async (protectedHeader) => { if (!protectedHeader.jwk) { @@ -120,13 +120,11 @@ export const registerPkiAcmeRouter = async (server: FastifyZodProvider) => { }, CreateAcmeAccountBodySchema ); - if (!jwk) { - throw new AcmeBadPublicKeyError({ detail: "JWK is required in the protected header" }); - } + const { alg, jwk } = protectedHeader; const { status, body, headers } = await server.services.pkiAcme.createAcmeAccount( req.params.profileId, - protectedHeader.alg, - jwk, + alg, + jwk!, payload ); // TODO: DRY diff --git a/backend/src/ee/services/pki-acme/pki-acme-service.ts b/backend/src/ee/services/pki-acme/pki-acme-service.ts index 1c191b206..1ef8f4c6e 100644 --- a/backend/src/ee/services/pki-acme/pki-acme-service.ts +++ b/backend/src/ee/services/pki-acme/pki-acme-service.ts @@ -156,6 +156,7 @@ export const pkiAcmeServiceFactory = ({ const newAccount = await acmeAccountDAL.create({ profileId: profile.id, + alg, publicKey: jwk, emails: contact ?? [] }); diff --git a/backend/src/ee/services/pki-acme/pki-acme-types.ts b/backend/src/ee/services/pki-acme/pki-acme-types.ts index 35571b0cb..f5908a922 100644 --- a/backend/src/ee/services/pki-acme/pki-acme-types.ts +++ b/backend/src/ee/services/pki-acme/pki-acme-types.ts @@ -40,7 +40,6 @@ export type TFinalizeAcmeOrderPayload = z.infer = { protectedHeader: TProtectedHeader; - jwk?: JsonWebKey; payload: T; }; export type TAcmeResponse = {