// middleware.ts import { NextResponse } from 'next/server' import type { NextRequest } from 'next/server' import { withAuth } from "next-auth/middleware" export default withAuth((request: NextRequest) => { if (request.nextUrl.pathname.startsWith('/login')) { return NextResponse.next() } // @ts-expect-error if (!request.nextauth.token) { return NextResponse.redirect("/login") } // @ts-expect-error console.log({ token: request.nextauth.token }) console.log("INTO middleware") const path = request.nextUrl.pathname console.log({ path }) const zammadPaths = ['/zammad', '/assets', '/api/v1', '/auth/sso', '/ws']; if (zammadPaths.some((p) => path.startsWith(p))) { console.log("MATCHED ZAMMAD PATH") const finalURL = new URL(path.replace("/zammad", ""), process.env.ZAMMAD_URL) console.log(finalURL.toString()) const requestHeaders = new Headers(request.headers) // @ts-expect-error requestHeaders.set('X-Forwarded-User', request.nextauth.token?.email) requestHeaders.set('Host', 'zammad.example.com') console.log(requestHeaders) return NextResponse.rewrite(finalURL, { request: { headers: requestHeaders } }) } else { console.log("DID NOT MATCH ZAMMAD PATH") return NextResponse.next() } }, { pages: { signIn: '/login', } })