From 9a575b7e82628f3bd472cae8a5f3f381c9744fd2 Mon Sep 17 00:00:00 2001 From: Aaron Scully Date: Fri, 17 Apr 2026 17:24:13 +0100 Subject: [PATCH] Fixing issue that clashes with CDP when SSL terminates at the gateway and the internal address will appear without SSL, yet the browser sees it as having SSL (ie http vs https). --- src/server/plugins/engine/components/PaymentField.ts | 4 +++- .../plugins/engine/pageControllers/QuestionPageController.ts | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/server/plugins/engine/components/PaymentField.ts b/src/server/plugins/engine/components/PaymentField.ts index ddac28bab..f1c20bdbb 100644 --- a/src/server/plugins/engine/components/PaymentField.ts +++ b/src/server/plugins/engine/components/PaymentField.ts @@ -244,7 +244,9 @@ export class PaymentField extends FormComponent { : 'Add a valid test API key before you can preview the payment journey.' const govukError = createError(componentName, message) request.yar.flash(COMPONENT_STATE_ERROR, govukError, true) - return h.redirect(request.url.href).code(StatusCodes.SEE_OTHER) + return h + .redirect(`${request.url.pathname}${request.url.search}`) + .code(StatusCodes.SEE_OTHER) } const sessionData: PaymentSessionData = { diff --git a/src/server/plugins/engine/pageControllers/QuestionPageController.ts b/src/server/plugins/engine/pageControllers/QuestionPageController.ts index 48ec5b9c5..db6a5f33f 100644 --- a/src/server/plugins/engine/pageControllers/QuestionPageController.ts +++ b/src/server/plugins/engine/pageControllers/QuestionPageController.ts @@ -422,7 +422,7 @@ export class QuestionPageController extends PageController { // Copy any URL params into the form state (if not already done so) if (await prefillStateFromQueryParameters(request, this)) { // Forward to same page without query string - return h.redirect(`${request.url.origin}${request.url.pathname}`) + return h.redirect(request.url.pathname) } const viewModel = this.getViewModel(request, context) @@ -625,7 +625,7 @@ export class QuestionPageController extends PageController { return await selectedComponent.dispatcher(request, h, { component, controller: this, - sourceUrl: request.url.toString(), + sourceUrl: `${request.url.pathname}${request.url.search}`, actionArgs: args, isLive, isPreview