diff --git a/config/presets/middleware.json b/config/presets/middleware.json index 24d7de715..e1aa24a0e 100644 --- a/config/presets/middleware.json +++ b/config/presets/middleware.json @@ -25,6 +25,10 @@ { "@type": "HeaderHandler", "HeaderHandler:_headers": [ + { + "HeaderHandler:_headers_key": "Vary", + "HeaderHandler:_headers_value": "Accept,Authorization,Origin" + }, { "HeaderHandler:_headers_key": "X-Powered-By", "HeaderHandler:_headers_value": "Community Solid Server" diff --git a/test/integration/Middleware.test.ts b/test/integration/Middleware.test.ts index 7398acd26..ad73836ad 100644 --- a/test/integration/Middleware.test.ts +++ b/test/integration/Middleware.test.ts @@ -34,6 +34,27 @@ describe('An Express server with middleware', (): void => { server.close(); }); + it('sets a Vary header containing Accept.', async(): Promise => { + const res = await request(server).get('/'); + expect(res.header).toEqual(expect.objectContaining({ + vary: expect.stringMatching(/(^|,)\s*Accept\s*(,|$)/iu), + })); + }); + + it('sets a Vary header containing Authorization.', async(): Promise => { + const res = await request(server).get('/'); + expect(res.header).toEqual(expect.objectContaining({ + vary: expect.stringMatching(/(^|,)\s*Authorization\s*(,|$)/iu), + })); + }); + + it('sets a Vary header containing Origin.', async(): Promise => { + const res = await request(server).get('/'); + expect(res.header).toEqual(expect.objectContaining({ + vary: expect.stringMatching(/(^|,)\s*Origin\s*(,|$)/iu), + })); + }); + it('sends server identification in the X-Powered-By header.', async(): Promise => { const res = await request(server).get('/'); expect(res.header).toEqual(expect.objectContaining({