Skip to content

Commit 4baa9b6

Browse files
authored
wrap samlResponse in try/catch (#22984)
1 parent 02c86d0 commit 4baa9b6

File tree

1 file changed

+17
-13
lines changed
  • apps/web/app/api/auth/saml/callback

1 file changed

+17
-13
lines changed

apps/web/app/api/auth/saml/callback/route.ts

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,27 @@ import type { SAMLResponsePayload } from "@calcom/features/ee/sso/lib/jackson";
99
import logger from "@calcom/lib/logger";
1010

1111
async function handler(req: NextRequest) {
12-
const log = logger.getSubLogger({ prefix: ["[SAML callback]"] });
12+
const uid = uuid();
13+
const log = logger.getSubLogger({ prefix: ["[SAML callback]", `trace: ${uid}`] });
1314
const { oauthController } = await jackson();
1415

1516
const requestData = (await parseRequestData(req)) as SAMLResponsePayload;
1617

17-
const { redirect_url, error } = await oauthController.samlResponse(requestData);
18-
19-
if (redirect_url) {
20-
return NextResponse.redirect(redirect_url, 302);
21-
}
22-
23-
if (error) {
24-
const uid = uuid();
25-
log.error(
26-
`Error authenticating user with error ${error} for relayState ${requestData?.RelayState} trace:${uid}`
27-
);
28-
return NextResponse.json({ message: `Error authorizing user. trace: ${uid}` }, { status: 400 });
18+
try {
19+
const { redirect_url, error } = await oauthController.samlResponse(requestData);
20+
21+
if (redirect_url) {
22+
return NextResponse.redirect(redirect_url, 302);
23+
}
24+
25+
if (error) {
26+
const uid = uuid();
27+
log.error(`Error authenticating user with error ${error} for relayState ${requestData?.RelayState}`);
28+
return NextResponse.json({ message: `Error authorizing user. trace: ${uid}` }, { status: 400 });
29+
}
30+
} catch (error) {
31+
log.error(`Error processing SAML response`, error);
32+
return NextResponse.json({ message: `Error processing SAML response. trace: ${uid}` }, { status: 500 });
2933
}
3034

3135
return NextResponse.json({ message: "No redirect URL provided" }, { status: 400 });

0 commit comments

Comments
 (0)