Skip to content

Commit

Permalink
fix(core): Handle filename* with quotes in Content-Disposition header (
Browse files Browse the repository at this point in the history
…#7229)

Github issue / Community forum post (link here to close automatically):
  • Loading branch information
elsmr authored Sep 21, 2023
1 parent 2af967c commit 67b985f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
2 changes: 1 addition & 1 deletion packages/core/src/NodeExecuteFunctions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -649,7 +649,7 @@ function parseFileName(filename?: string): string | undefined {

// https://datatracker.ietf.org/doc/html/rfc5987
function parseFileNameStar(filename?: string): string | undefined {
const [_encoding, _locale, content] = filename?.split("'") ?? [];
const [_encoding, _locale, content] = parseFileName(filename)?.split("'") ?? [];

return content;
}
Expand Down
15 changes: 15 additions & 0 deletions packages/core/test/NodeExecuteFunctions.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,21 @@ describe('NodeExecuteFunctions', () => {
});
});

it('parses valid content-disposition header with filename* (quoted)', () => {
const message = mock<IncomingMessage>({
headers: {
'content-type': undefined,
'content-disposition': ' attachment;filename*="utf-8\' \'test-unsplash.jpg"',
},
});
parseIncomingMessage(message);

expect(message.contentDisposition).toEqual({
filename: 'test-unsplash.jpg',
type: 'attachment',
});
});

it('parses valid content-disposition header with filename and trailing ";"', () => {
const message = mock<IncomingMessage>({
headers: {
Expand Down

0 comments on commit 67b985f

Please sign in to comment.