From 4efe9cee3c5b0b5d00119e72f7f0a8182c78bca8 Mon Sep 17 00:00:00 2001 From: Joachim Van Herwegen Date: Wed, 17 Feb 2021 13:32:26 +0100 Subject: [PATCH] feat: Integrate WAC-Allow header support --- config/presets/ldp/response-writer.json | 3 +++ test/integration/LdpHandlerWithAuth.test.ts | 3 +++ test/integration/ServerWithAuth.test.ts | 1 + 3 files changed, 7 insertions(+) diff --git a/config/presets/ldp/response-writer.json b/config/presets/ldp/response-writer.json index 12cbc4d2c..050a5bf07 100644 --- a/config/presets/ldp/response-writer.json +++ b/config/presets/ldp/response-writer.json @@ -43,6 +43,9 @@ "LinkRelMetadataWriter:_linkRelMap_value": "acl" } ] + }, + { + "@type": "WacAllowMetadataWriter" } ] }, diff --git a/test/integration/LdpHandlerWithAuth.test.ts b/test/integration/LdpHandlerWithAuth.test.ts index 061dfea7e..4034a3da2 100644 --- a/test/integration/LdpHandlerWithAuth.test.ts +++ b/test/integration/LdpHandlerWithAuth.test.ts @@ -75,6 +75,7 @@ describe.each(stores)('An LDP handler with auth using %s', (name, { storeUrn, te expect(response._getBuffer().toString()).toContain('TESTFILE2'); expect(response.getHeaders().link).toContain(`<${LDP.Resource}>; rel="type"`); expect(response.getHeaders().link).toContain(`<${id}.acl>; rel="acl"`); + expect(response.getHeaders()['wac-allow']).toBe('user="read write append",public="read write append"'); // DELETE file await resourceHelper.deleteResource(id); @@ -107,6 +108,7 @@ describe.each(stores)('An LDP handler with auth using %s', (name, { storeUrn, te expect(response._getBuffer().toString()).toContain('TEST'); expect(response.getHeaders().link).toContain(`<${LDP.Resource}>; rel="type"`); expect(response.getHeaders().link).toContain(`; rel="acl"`); + expect(response.getHeaders()['wac-allow']).toBe('user="read",public="read"'); // Try to delete permanent file response = await resourceHelper.deleteResource('http://test.com/permanent.txt', true); @@ -147,5 +149,6 @@ describe.each(stores)('An LDP handler with auth using %s', (name, { storeUrn, te const response = await resourceHelper.performRequest(new URL('http://test.com/.acl'), 'GET', { accept: '*/*' }); expect(response.statusCode).toBe(200); + expect(response.getHeaders()['wac-allow']).toBe('user="control",public="control"'); }); }); diff --git a/test/integration/ServerWithAuth.test.ts b/test/integration/ServerWithAuth.test.ts index 8d656f3b0..7e000933b 100644 --- a/test/integration/ServerWithAuth.test.ts +++ b/test/integration/ServerWithAuth.test.ts @@ -112,5 +112,6 @@ describe('A server with authorization', (): void => { [], ); expect(response.statusCode).toBe(200); + expect(response.getHeaders()['wac-allow']).toBe('user="read write append",public="read write append"'); }); });