Forward cookies from request

This commit is contained in:
James Waters 2023-08-11 20:27:00 +01:00
parent 19bf7a0e5a
commit 77b9408935
3 changed files with 23 additions and 4 deletions

View File

@ -3,6 +3,7 @@ import { performance } from "perf_hooks";
import { getServiceItem } from "utils/config/service-helpers"; import { getServiceItem } from "utils/config/service-helpers";
import createLogger from "utils/logger"; import createLogger from "utils/logger";
import { httpProxy } from "utils/proxy/http"; import { httpProxy } from "utils/proxy/http";
import {importCookieHeader} from "../../utils/proxy/cookie-jar";
const logger = createLogger("ping"); const logger = createLogger("ping");
@ -25,6 +26,10 @@ export default async function handler(req, res) {
}); });
} }
if (req.headers.cookie) {
importCookieHeader(pingURL, req.headers.cookie)
}
try { try {
let startTime = performance.now(); let startTime = performance.now();
let [status] = await httpProxy(pingURL, { let [status] = await httpProxy(pingURL, {

View File

@ -37,3 +37,12 @@ export function addCookieToJar(url, headers) {
cookieJar.setCookieSync(cookies[i], url.toString(), { ignoreError: true }); cookieJar.setCookieSync(cookies[i], url.toString(), { ignoreError: true });
} }
} }
export function importCookieHeader(url, cookieHeader) {
for (const cookiePair of cookieHeader.split(';')) {
const [key, value] = cookiePair.trim().split('=')
cookieJar.setCookieSync(new Cookie({
key, value
}), url.toString(), { ignoreError: true });
}
}

View File

@ -4,6 +4,7 @@ import validateWidgetData from "utils/proxy/validate-widget-data";
import { httpProxy } from "utils/proxy/http"; import { httpProxy } from "utils/proxy/http";
import createLogger from "utils/logger"; import createLogger from "utils/logger";
import widgets from "widgets/widgets"; import widgets from "widgets/widgets";
import {importCookieHeader} from "../cookie-jar";
const logger = createLogger("genericProxyHandler"); const logger = createLogger("genericProxyHandler");
@ -35,6 +36,10 @@ export default async function genericProxyHandler(req, res, map) {
params.body = req.body; params.body = req.body;
} }
if (req.headers.cookie) {
importCookieHeader(url, req.headers.cookie)
}
const [status, contentType, data] = await httpProxy(url, params); const [status, contentType, data] = await httpProxy(url, params);
let resultData = data; let resultData = data;