Merge branch 'main' into cnsl-navigation-rehaul

This commit is contained in:
Max Peintner
2025-07-21 11:40:49 +02:00
committed by GitHub
2 changed files with 6 additions and 38 deletions

View File

@@ -44,6 +44,8 @@ export async function setSAMLFormCookie(value: string): Promise<string> {
name: uid, name: uid,
value: value, value: value,
httpOnly: true, httpOnly: true,
secure: process.env.NODE_ENV === "production", // Required for HTTPS in production
sameSite: "lax", // Allows cookies with top-level navigation (needed for SAML redirects)
path: "/", path: "/",
maxAge: 5 * 60, // 5 minutes maxAge: 5 * 60, // 5 minutes
}); });

View File

@@ -1016,44 +1016,10 @@ export async function startIdentityProviderFlow({
return `${redirectUrl}?${params.toString()}`; return `${redirectUrl}?${params.toString()}`;
} catch (stringifyError) { } catch (stringifyError) {
console.error("Failed to stringify formData.fields:", { console.error("JSON serialization failed:", stringifyError);
error: stringifyError, throw new Error(
formDataFields: formData.fields, `Failed to serialize SAML form data: ${stringifyError instanceof Error ? stringifyError.message : String(stringifyError)}`,
formDataUrl: formData.url, );
fieldsType: typeof formData.fields,
fieldsConstructor: formData.fields?.constructor?.name,
});
// Try to create a safe serialization by converting to plain object
try {
const safeFields: Record<string, string> = {};
const fieldsObj = formData.fields || {};
// Convert each field to a string if it's not already
for (const [key, value] of Object.entries(fieldsObj)) {
safeFields[key] =
typeof value === "string" ? value : String(value);
}
console.log(
"Using safe serialization for formData.fields:",
safeFields,
);
const safeStringified = JSON.stringify(safeFields);
const dataId = await setSAMLFormCookie(safeStringified);
const params = new URLSearchParams({
url: formData.url,
id: dataId,
});
return `${redirectUrl}?${params.toString()}`;
} catch (fallbackError) {
console.error("Safe serialization also failed:", fallbackError);
throw new Error(
`Failed to serialize SAML form data: ${stringifyError instanceof Error ? stringifyError.message : String(stringifyError)}`,
);
}
} }
} else { } else {
return null; return null;