Changeset 6c4ff7e in Klonkt for src/services/ActivityPubService.js
- Timestamp:
- 08/13/2026 11:39:57 PM (4 weeks ago)
- Branches:
- main
- Children:
- 9529d7b
- Parents:
- fbfd7a1
- File:
-
- 1 edited
-
src/services/ActivityPubService.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/services/ActivityPubService.js
rfbfd7a1 r6c4ff7e 5416 5416 * (request-target) host date, the set verifyRequest checks. 5417 5417 */ 5418 /** 5419 * De handtekening-headers voor een GET als `slug`. Losgetrokken uit 5420 * signedGetJson omdat een verhuizing ook BYTES moet kunnen ophalen (FEP-1580: 5421 * gehoste audio zit achter dezelfde poort als de rest, en een ongetekende fetch 5422 * krijgt daar terecht een 403). 5423 */ 5424 export function signedGetHeaders(slug, url, accept = 'application/activity+json') { 5425 const base = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, ''); 5426 if (!base || !slug) return null; 5427 const me = actorId(base, slug); 5428 const keys = getOrCreateKeys(slug); 5429 const u = new URL(url); 5430 const date = new Date().toUTCString(); 5431 const target = `${u.pathname}${u.search || ''}`; 5432 const signingString = `(request-target): get ${target}\nhost: ${u.host}\ndate: ${date}`; 5433 const signature = crypto.sign('sha256', Buffer.from(signingString), keys.private_pem).toString('base64'); 5434 return { 5435 Accept: accept, 5436 Date: date, 5437 Signature: `keyId="${me}#main-key",algorithm="rsa-sha256",headers="(request-target) host date",signature="${signature}"`, 5438 }; 5439 } 5440 5418 5441 export async function signedGetJson(slug, url, onStatus) { 5419 5442 try { 5420 const base = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, ''); 5421 if (!base || !slug) return apGetJson(url); 5422 const me = actorId(base, slug); 5423 const keys = getOrCreateKeys(slug); 5424 const u = new URL(url); 5425 const date = new Date().toUTCString(); 5426 const target = `${u.pathname}${u.search || ''}`; 5427 const signingString = `(request-target): get ${target}\nhost: ${u.host}\ndate: ${date}`; 5428 const signature = crypto.sign('sha256', Buffer.from(signingString), keys.private_pem).toString('base64'); 5429 const sig = `keyId="${me}#main-key",algorithm="rsa-sha256",headers="(request-target) host date",signature="${signature}"`; 5430 const r = await safeFetch(url, { headers: { Accept: 'application/activity+json', Date: date, Signature: sig } }); 5443 const headers = signedGetHeaders(slug, url); 5444 if (!headers) return apGetJson(url); 5445 const r = await safeFetch(url, { headers }); 5431 5446 // De status doorgeven aan wie erom vroeg: null alleen zegt "het lukte 5432 5447 // niet", en dat is te weinig om een WEIGERING van een STORING te … … 6757 6772 // aanroept een 500 en lijkt het alsof de poort dicht staat terwijl hij 6758 6773 // ontbreekt (precies hoe movedLock zich een dag eerder verstopte). 6759 isMoveTarget, signedGetJson, 6774 isMoveTarget, signedGetJson, signedGetHeaders, 6760 6775 AP_CONTEXT, getOrCreateKeys, apWants, sendAP, actorId, noteId, stripLeadingMentions, pagedCollection, 6761 6776 deriveHandle, localSlugOf, outboxSlice, PAGINA_GROOTTE,
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)