From 701ad84e5be9f32f4da1165975f47069c7fc81fa Mon Sep 17 00:00:00 2001 From: Soumyadip Chowdhury Date: Mon, 9 Dec 2024 15:48:04 +0530 Subject: [PATCH 1/3] fix(reverse-proxy): increase request header size limit --- packages/reverse-proxy-service/src/server.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/reverse-proxy-service/src/server.ts b/packages/reverse-proxy-service/src/server.ts index c48d8e8fe..6395e2d27 100644 --- a/packages/reverse-proxy-service/src/server.ts +++ b/packages/reverse-proxy-service/src/server.ts @@ -12,6 +12,16 @@ import store from './setup/store'; import { COOKIE_SECRET } from './setup/env'; import oidcAuth from './middleware/oidcAuth'; import { updateApplicationCache } from './utils/applicationCache'; +import http from 'http'; +import https from 'https'; + +declare module 'http' { interface Agent { maxHeaderSize?: number; } } +declare module 'https' { interface Agent { maxHeaderSize?: number; } } + +const MAX_HEADER_SIZE = 16 * 1024 * 1024; // 16MB + +( http.globalAgent as http.Agent ).maxHeaderSize = MAX_HEADER_SIZE; +( https.globalAgent as https.Agent ).maxHeaderSize = MAX_HEADER_SIZE; const getServer = async () => { const server = express(); From af481057da59f6f7c6c946e459e5b6462804cea7 Mon Sep 17 00:00:00 2001 From: Soumyadip Chowdhury Date: Mon, 9 Dec 2024 15:52:38 +0530 Subject: [PATCH 2/3] fix(reverse-proxy): https removed --- packages/reverse-proxy-service/src/server.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/reverse-proxy-service/src/server.ts b/packages/reverse-proxy-service/src/server.ts index 6395e2d27..7d139b8c1 100644 --- a/packages/reverse-proxy-service/src/server.ts +++ b/packages/reverse-proxy-service/src/server.ts @@ -13,15 +13,12 @@ import { COOKIE_SECRET } from './setup/env'; import oidcAuth from './middleware/oidcAuth'; import { updateApplicationCache } from './utils/applicationCache'; import http from 'http'; -import https from 'https'; declare module 'http' { interface Agent { maxHeaderSize?: number; } } -declare module 'https' { interface Agent { maxHeaderSize?: number; } } const MAX_HEADER_SIZE = 16 * 1024 * 1024; // 16MB ( http.globalAgent as http.Agent ).maxHeaderSize = MAX_HEADER_SIZE; -( https.globalAgent as https.Agent ).maxHeaderSize = MAX_HEADER_SIZE; const getServer = async () => { const server = express(); From 8e6e2172cb44a85ae27dad1f9edd0394f02eef45 Mon Sep 17 00:00:00 2001 From: Soumyadip Chowdhury Date: Mon, 9 Dec 2024 17:21:48 +0530 Subject: [PATCH 3/3] fix(reverse-proxy): types added --- packages/reverse-proxy-service/src/server.ts | 2 -- packages/reverse-proxy-service/src/types/http.d.ts | 7 +++++++ packages/reverse-proxy-service/tsconfig.json | 5 ++++- 3 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 packages/reverse-proxy-service/src/types/http.d.ts diff --git a/packages/reverse-proxy-service/src/server.ts b/packages/reverse-proxy-service/src/server.ts index 7d139b8c1..deadb0996 100644 --- a/packages/reverse-proxy-service/src/server.ts +++ b/packages/reverse-proxy-service/src/server.ts @@ -14,8 +14,6 @@ import oidcAuth from './middleware/oidcAuth'; import { updateApplicationCache } from './utils/applicationCache'; import http from 'http'; -declare module 'http' { interface Agent { maxHeaderSize?: number; } } - const MAX_HEADER_SIZE = 16 * 1024 * 1024; // 16MB ( http.globalAgent as http.Agent ).maxHeaderSize = MAX_HEADER_SIZE; diff --git a/packages/reverse-proxy-service/src/types/http.d.ts b/packages/reverse-proxy-service/src/types/http.d.ts new file mode 100644 index 000000000..3edfd5153 --- /dev/null +++ b/packages/reverse-proxy-service/src/types/http.d.ts @@ -0,0 +1,7 @@ +import * as http from 'http'; + +declare module 'http' { + interface Agent { + maxHeaderSize?: number; + } +} diff --git a/packages/reverse-proxy-service/tsconfig.json b/packages/reverse-proxy-service/tsconfig.json index 7dda885f2..7a71c16aa 100644 --- a/packages/reverse-proxy-service/tsconfig.json +++ b/packages/reverse-proxy-service/tsconfig.json @@ -50,7 +50,10 @@ // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ + "typeRoots": [ + "src/types", + "node_modules/@types" + ], // "types": [], /* Type declaration files to be included in compilation. */ // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */