fix: forward device pod session through cloud web
This commit is contained in:
@@ -12,7 +12,8 @@ const FORWARDED_REQUEST_HEADERS = Object.freeze([
|
||||
"x-trace-id",
|
||||
"x-request-id",
|
||||
"x-actor-id",
|
||||
"x-source-service-id"
|
||||
"x-source-service-id",
|
||||
"x-hwlab-session-token"
|
||||
]);
|
||||
|
||||
export function isCloudWebSseRoute(pathname) {
|
||||
|
||||
@@ -2,6 +2,7 @@ import assert from "node:assert/strict";
|
||||
import { createServer } from "node:http";
|
||||
import test from "node:test";
|
||||
|
||||
import { upstreamRequestHeaders } from "./cloud-web-proxy.mjs";
|
||||
import { cloudWebProxyRoutePolicy } from "./cloud-web-routes.mjs";
|
||||
import { proxyHttpRequest } from "./http.mjs";
|
||||
|
||||
@@ -83,6 +84,23 @@ test("cloud web route policy delegates auth authority to cloud-api", () => {
|
||||
});
|
||||
});
|
||||
|
||||
test("cloud web proxy forwards device-pod session tokens without forwarding bearer credentials", () => {
|
||||
const headers = upstreamRequestHeaders({
|
||||
headers: {
|
||||
accept: "application/json",
|
||||
authorization: "Bearer should-not-forward",
|
||||
cookie: "hwlab_session=session-a",
|
||||
"x-hwlab-session-token": "device-pod-session-a",
|
||||
"x-trace-id": "trc_device_pod_session_proxy"
|
||||
}
|
||||
});
|
||||
|
||||
assert.equal(headers["x-hwlab-session-token"], "device-pod-session-a");
|
||||
assert.equal(headers.cookie, "hwlab_session=session-a");
|
||||
assert.equal(headers["x-trace-id"], "trc_device_pod_session_proxy");
|
||||
assert.equal(headers.authorization, undefined);
|
||||
});
|
||||
|
||||
test("dev entrypoint proxy allows slow first response beyond legacy 4500ms", async () => {
|
||||
const upstream = createServer((request, response) => {
|
||||
request.resume();
|
||||
|
||||
Reference in New Issue
Block a user