post form

This commit is contained in:
Max Peintner
2025-07-01 09:55:50 +02:00
parent 6ced2c595d
commit f7e272ace2

View File

@@ -25,6 +25,7 @@ import {
import { CreateResponseRequestSchema } from "@zitadel/proto/zitadel/saml/v2/saml_service_pb"; import { CreateResponseRequestSchema } from "@zitadel/proto/zitadel/saml/v2/saml_service_pb";
import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb"; import { Session } from "@zitadel/proto/zitadel/session/v2/session_pb";
import { IdentityProviderType } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb"; import { IdentityProviderType } from "@zitadel/proto/zitadel/settings/v2/login_settings_pb";
import { FormData } from "@zitadel/proto/zitadel/user/v2/idp_pb";
import { headers } from "next/headers"; import { headers } from "next/headers";
import { NextRequest, NextResponse } from "next/server"; import { NextRequest, NextResponse } from "next/server";
import { DEFAULT_CSP } from "../../../constants/csp"; import { DEFAULT_CSP } from "../../../constants/csp";
@@ -232,19 +233,17 @@ export async function GET(request: NextRequest) {
if (resp.nextStep.case === "authUrl" && resp.nextStep.value) { if (resp.nextStep.case === "authUrl" && resp.nextStep.value) {
return NextResponse.redirect(resp.nextStep.value); return NextResponse.redirect(resp.nextStep.value);
} else if ( } else if (
resp.nextStep.case === "postForm" && resp.nextStep.case === "formData" &&
resp.nextStep.value resp.nextStep.value
) { ) {
const postCall = resp.nextStep.value; const formData: FormData = resp.nextStep.value;
const redirectUrl = constructUrl(request, "/saml-post"); const redirectUrl = constructUrl(request, "/saml-post");
redirectUrl.searchParams.set("url", url); redirectUrl.searchParams.set("url", formData.url);
redirectUrl.searchParams.set("RelayState", postCall.relayState); Object.entries(formData.fields).forEach(([k, v]) => {
redirectUrl.searchParams.set( redirectUrl.searchParams.set(k, v);
"SAMLResponse", });
postCall.samlResponse,
);
return NextResponse.redirect(redirectUrl.toString()); return NextResponse.redirect(redirectUrl.toString());
} }