diff --git a/apps/login/src/app/(login)/idp/ldap/page.tsx b/apps/login/src/app/(login)/idp/ldap/page.tsx
index 2e69b313d..5546e98e6 100644
--- a/apps/login/src/app/(login)/idp/ldap/page.tsx
+++ b/apps/login/src/app/(login)/idp/ldap/page.tsx
@@ -11,7 +11,15 @@ export default async function Page(props: {
params: Promise<{ provider: string }>;
}) {
const searchParams = await props.searchParams;
- const { idpId, organization, link } = searchParams;
+ const {
+ idpId,
+ organization,
+ link,
+ requestId,
+ postErrorRedirectUrl,
+ linkToSessionId,
+ linkFingerprint,
+ } = searchParams;
if (!idpId) {
throw new Error("No idpId provided in searchParams");
@@ -44,7 +52,15 @@ export default async function Page(props: {
-
+
);
diff --git a/apps/login/src/components/ldap-username-password-form.tsx b/apps/login/src/components/ldap-username-password-form.tsx
index f6f75f58a..56b66effa 100644
--- a/apps/login/src/components/ldap-username-password-form.tsx
+++ b/apps/login/src/components/ldap-username-password-form.tsx
@@ -20,9 +20,22 @@ type Inputs = {
type Props = {
idpId: string;
link: boolean;
+ requestId?: string;
+ organization?: string;
+ postErrorRedirectUrl?: string;
+ linkToSessionId?: string;
+ linkFingerprint?: string;
};
-export function LDAPUsernamePasswordForm({ idpId, link }: Props) {
+export function LDAPUsernamePasswordForm({
+ idpId,
+ link,
+ requestId,
+ organization,
+ postErrorRedirectUrl,
+ linkToSessionId,
+ linkFingerprint,
+}: Props) {
const { register, handleSubmit, formState } = useForm({
mode: "onChange",
});
@@ -44,6 +57,11 @@ export function LDAPUsernamePasswordForm({ idpId, link }: Props) {
username: values.loginName,
password: values.password,
link: link,
+ requestId,
+ organization,
+ postErrorRedirectUrl,
+ linkToSessionId,
+ linkFingerprint,
})
.catch(() => {
setError("Could not start LDAP flow");
diff --git a/apps/login/src/lib/server/idp.ts b/apps/login/src/lib/server/idp.ts
index 5864dc241..b2ec4c36a 100644
--- a/apps/login/src/lib/server/idp.ts
+++ b/apps/login/src/lib/server/idp.ts
@@ -216,6 +216,11 @@ type createNewSessionForLDAPCommand = {
password: string;
idpId: string;
link: boolean;
+ requestId?: string;
+ organization?: string;
+ postErrorRedirectUrl?: string;
+ linkToSessionId?: string;
+ linkFingerprint?: string;
};
export async function createNewSessionForLDAP(command: createNewSessionForLDAPCommand) {
@@ -249,8 +254,13 @@ export async function createNewSessionForLDAP(command: createNewSessionForLDAPCo
if (command.link) {
params.set("link", "true");
}
+ if (command.requestId) params.set("requestId", command.requestId);
+ if (command.organization) params.set("organization", command.organization);
+ if (command.postErrorRedirectUrl) params.set("postErrorRedirectUrl", command.postErrorRedirectUrl);
+ if (command.linkToSessionId) params.set("linkToSessionId", command.linkToSessionId);
+ if (command.linkFingerprint) params.set("linkFingerprint", command.linkFingerprint);
return {
- redirect: `/idp/ldap/success?` + params.toString(),
+ redirect: `/idp/ldap/process?` + params.toString(),
};
}