From f5d7809515a09f96e757fbb01e1faecdd32ed51b Mon Sep 17 00:00:00 2001 From: = Date: Fri, 18 Apr 2025 22:24:01 +0530 Subject: [PATCH] feat: improved saml error messages --- backend/src/@types/fastify.d.ts | 2 +- backend/src/ee/routes/v1/saml-router.ts | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/backend/src/@types/fastify.d.ts b/backend/src/@types/fastify.d.ts index e3261db70..441d3ce4c 100644 --- a/backend/src/@types/fastify.d.ts +++ b/backend/src/@types/fastify.d.ts @@ -136,7 +136,7 @@ declare module "fastify" { rateLimits: RateLimitConfiguration; // passport data passportUser: { - isUserCompleted: string; + isUserCompleted: boolean; providerAuthToken: string; }; kmipUser: { diff --git a/backend/src/ee/routes/v1/saml-router.ts b/backend/src/ee/routes/v1/saml-router.ts index 13ac5dfcb..f2df2fb89 100644 --- a/backend/src/ee/routes/v1/saml-router.ts +++ b/backend/src/ee/routes/v1/saml-router.ts @@ -223,12 +223,18 @@ export const registerSamlRouter = async (server: FastifyZodProvider) => { samlConfigId: z.string().trim() }) }, - preValidation: passport.authenticate("saml", { - session: false, - failureFlash: true, - failureRedirect: "/login/provider/error" - // this is due to zod type difference - }) as any, + preValidation: passport.authenticate( + "saml", + { + session: false + }, + async (req, res, err, user) => { + if (err) { + throw new BadRequestError({ message: `Saml authentication failed. ${err?.message}`, error: err }); + } + req.passportUser = user as { isUserCompleted: boolean; providerAuthToken: string }; + } + ) as any, // this is due to zod type difference handler: (req, res) => { if (req.passportUser.isUserCompleted) { return res.redirect(