Merge pull request #136 from cloudflare/sven/MOW-115

MOW-115: improve logging for fetchKey failures
pull/137/head
Sven Sauleau 2023-01-18 13:24:49 +01:00 zatwierdzone przez GitHub
commit 914f293d97
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 6 dodań i 2 usunięć

Wyświetl plik

@ -18,13 +18,14 @@ export async function verifySignature(parsedSignature: ParsedSignature, key: Cry
)
}
export async function fetchKey(parsedSignature: ParsedSignature): Promise<CryptoKey> {
export async function fetchKey(parsedSignature: ParsedSignature): Promise<CryptoKey | null> {
const url = parsedSignature.keyId
const res = await fetch(url, {
headers: { Accept: 'application/activity+json' },
})
if (!res.ok) {
throw new Error(`failed to fetch keys from "${url}", returned ${res.status}: ${await res.text()}`)
console.warn(`failed to fetch keys from "${url}", returned ${res.status}.`)
return null
}
const parsedResponse = (await res.json()) as Profile

Wyświetl plik

@ -14,6 +14,9 @@ import { generateDigestHeader } from 'wildebeest/backend/src/utils/http-signing-
export const onRequest: PagesFunction<Env, any> = async ({ params, request, env }) => {
const parsedSignature = parseRequest(request)
const pubKey = await fetchKey(parsedSignature)
if (pubKey === null) {
return new Response('signature key not found', { status: 401 })
}
const valid = await verifySignature(parsedSignature, pubKey)
if (!valid) {
return new Response('invalid signature', { status: 401 })