From 8e0fb9fe9b98b46425dfa0eb10d6b4e48d885592 Mon Sep 17 00:00:00 2001 From: Akhil Mohan Date: Fri, 26 Jan 2024 11:16:31 +0530 Subject: [PATCH] feat(infisical-pg): wrapped saml get option in try catch --- backend-pg/src/ee/routes/v1/saml-router.ts | 49 ++++++++++++---------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/backend-pg/src/ee/routes/v1/saml-router.ts b/backend-pg/src/ee/routes/v1/saml-router.ts index 4b71ce333..a8e29d08c 100644 --- a/backend-pg/src/ee/routes/v1/saml-router.ts +++ b/backend-pg/src/ee/routes/v1/saml-router.ts @@ -34,32 +34,37 @@ export const registerSamlRouter = async (server: FastifyZodProvider) => { { passReqToCallback: true, getSamlOptions: async (req, done) => { - const { ssoIdentifier } = req.params; - if (!ssoIdentifier) throw new BadRequestError({ message: "Missing sso identitier" }); + try { + const { ssoIdentifier } = req.params; + if (!ssoIdentifier) throw new BadRequestError({ message: "Missing sso identitier" }); - const ssoConfig = await server.services.saml.getSaml({ - type: "ssoId", - id: ssoIdentifier - }); - if (!ssoConfig) throw new BadRequestError({ message: "SSO config not found" }); + const ssoConfig = await server.services.saml.getSaml({ + type: "ssoId", + id: ssoIdentifier + }); + if (!ssoConfig) throw new BadRequestError({ message: "SSO config not found" }); - const samlConfig: TSAMLConfig = { - callbackUrl: `${appCfg.SITE_URL}/api/v1/sso/saml2/${ssoIdentifier}`, - entryPoint: ssoConfig.entryPoint, - issuer: ssoConfig.issuer, - cert: ssoConfig.cert, - audience: appCfg.SITE_URL || "" - }; - if (ssoConfig.authProvider === SamlProviders.JUMPCLOUD_SAML) { - samlConfig.wantAuthnResponseSigned = false; - } - if (ssoConfig.authProvider === SamlProviders.AZURE_SAML) { - if (req.body.RelayState && JSON.parse(req.body.RelayState).spIntiaited) { - samlConfig.audience = `spn:${ssoConfig.issuer}`; + const samlConfig: TSAMLConfig = { + callbackUrl: `${appCfg.SITE_URL}/api/v1/sso/saml2/${ssoIdentifier}`, + entryPoint: ssoConfig.entryPoint, + issuer: ssoConfig.issuer, + cert: ssoConfig.cert, + audience: appCfg.SITE_URL || "" + }; + if (ssoConfig.authProvider === SamlProviders.JUMPCLOUD_SAML) { + samlConfig.wantAuthnResponseSigned = false; } + if (ssoConfig.authProvider === SamlProviders.AZURE_SAML) { + if (req.body.RelayState && JSON.parse(req.body.RelayState).spIntiaited) { + samlConfig.audience = `spn:${ssoConfig.issuer}`; + } + } + (req as unknown as FastifyRequest).ssoConfig = ssoConfig; + done(null, samlConfig); + } catch (error) { + logger.error(error); + done(error as Error); } - (req as unknown as FastifyRequest).ssoConfig = ssoConfig; - done(null, samlConfig); } }, async (req, profile, cb) => {