From dd269e92f0c160364d373095dbfa8dac89141933 Mon Sep 17 00:00:00 2001 From: Steve Zhang Date: Thu, 4 Apr 2024 22:30:41 -0400 Subject: [PATCH 1/5] Fix for #23999 - 'req.header is not a function' Signed-off-by: Steve Zhang --- .changeset/curly-news-report.md | 21 +++++++++++++++++++ .../src/service/KubernetesProxy.ts | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 .changeset/curly-news-report.md diff --git a/.changeset/curly-news-report.md b/.changeset/curly-news-report.md new file mode 100644 index 0000000000..f2a7dee6d1 --- /dev/null +++ b/.changeset/curly-news-report.md @@ -0,0 +1,21 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +--- + +**BREAKING** The kubernetes backend now can handle when req.header is undefined. + +These changes are **required** to `plugins/kubernetes-backend/src/service/KubernetesProxy.ts` + +```diff +-- a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts ++++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts +@@ -172,7 +172,7 @@ export class KubernetesProxy { + )?.toString(), + }; + +- const authHeader = req.header(HEADER_KUBERNETES_AUTH); ++ const authHeader = req.header?.(HEADER_KUBERNETES_AUTH); + if (authHeader) { + req.headers.authorization = authHeader; + } else { +``` diff --git a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts index b4536c5880..15b99e4180 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts @@ -172,7 +172,7 @@ export class KubernetesProxy { )?.toString(), }; - const authHeader = req.header(HEADER_KUBERNETES_AUTH); + const authHeader = req.header?.(HEADER_KUBERNETES_AUTH); if (authHeader) { req.headers.authorization = authHeader; } else { From b0865c7cd733ff135e1f5008ab8ded22a5e66b7e Mon Sep 17 00:00:00 2001 From: Steve Zhang Date: Tue, 9 Apr 2024 10:41:09 -0400 Subject: [PATCH 2/5] updated the changeset for this pr Signed-off-by: Steve Zhang --- .changeset/curly-news-report.md | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/.changeset/curly-news-report.md b/.changeset/curly-news-report.md index f2a7dee6d1..9463b8e72f 100644 --- a/.changeset/curly-news-report.md +++ b/.changeset/curly-news-report.md @@ -2,20 +2,4 @@ '@backstage/plugin-kubernetes-backend': patch --- -**BREAKING** The kubernetes backend now can handle when req.header is undefined. - -These changes are **required** to `plugins/kubernetes-backend/src/service/KubernetesProxy.ts` - -```diff --- a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts -+++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts -@@ -172,7 +172,7 @@ export class KubernetesProxy { - )?.toString(), - }; - -- const authHeader = req.header(HEADER_KUBERNETES_AUTH); -+ const authHeader = req.header?.(HEADER_KUBERNETES_AUTH); - if (authHeader) { - req.headers.authorization = authHeader; - } else { -``` +Fixed a bug where the proxy handler did not properly handle a missing header From b94aefccf12de305602a51c90e30bfe7b4bdeec3 Mon Sep 17 00:00:00 2001 From: Steve Zhang Date: Thu, 11 Apr 2024 09:27:07 -0400 Subject: [PATCH 3/5] get authHeader using req.headers instead Signed-off-by: Steve Zhang --- plugins/kubernetes-backend/src/service/KubernetesProxy.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts index 15b99e4180..faf4a90846 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts @@ -172,8 +172,9 @@ export class KubernetesProxy { )?.toString(), }; - const authHeader = req.header?.(HEADER_KUBERNETES_AUTH); - if (authHeader) { + const authHeader = + req.headers[HEADER_KUBERNETES_AUTH.toLocaleLowerCase()]; + if (typeof authHeader === 'string') { req.headers.authorization = authHeader; } else { // Map Backstage-Kubernetes-Authorization-X-X headers to a KubernetesRequestAuth object From b2389ece4bac2809e1ed5fc6b3f06a68d80ad48a Mon Sep 17 00:00:00 2001 From: Steve Zhang Date: Sat, 13 Apr 2024 22:56:38 -0400 Subject: [PATCH 4/5] updated toLocaleLowerCase with toLowerCase() instead Signed-off-by: Steve Zhang --- plugins/kubernetes-backend/src/service/KubernetesProxy.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts index faf4a90846..b89ed088fe 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts @@ -172,8 +172,7 @@ export class KubernetesProxy { )?.toString(), }; - const authHeader = - req.headers[HEADER_KUBERNETES_AUTH.toLocaleLowerCase()]; + const authHeader = req.headers[HEADER_KUBERNETES_AUTH.toLowerCase()]; if (typeof authHeader === 'string') { req.headers.authorization = authHeader; } else { From 78309cacc36cdcda2db8b424d2cc612c26073fe1 Mon Sep 17 00:00:00 2001 From: Steve Zhang Date: Sun, 14 Apr 2024 23:34:34 -0400 Subject: [PATCH 5/5] changed toLocaleLowerCase('en-US') Signed-off-by: Steve Zhang --- plugins/kubernetes-backend/src/service/KubernetesProxy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts index b89ed088fe..09da414d0e 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesProxy.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.ts @@ -172,7 +172,8 @@ export class KubernetesProxy { )?.toString(), }; - const authHeader = req.headers[HEADER_KUBERNETES_AUTH.toLowerCase()]; + const authHeader = + req.headers[HEADER_KUBERNETES_AUTH.toLocaleLowerCase('en-US')]; if (typeof authHeader === 'string') { req.headers.authorization = authHeader; } else {