Merge pull request #650 from pikasTech/fix/v02-cloud-web-session-token-proxy
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-trace-id",
|
||||||
"x-request-id",
|
"x-request-id",
|
||||||
"x-actor-id",
|
"x-actor-id",
|
||||||
"x-source-service-id"
|
"x-source-service-id",
|
||||||
|
"x-hwlab-session-token"
|
||||||
]);
|
]);
|
||||||
|
|
||||||
export function isCloudWebSseRoute(pathname) {
|
export function isCloudWebSseRoute(pathname) {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import assert from "node:assert/strict";
|
|||||||
import { createServer } from "node:http";
|
import { createServer } from "node:http";
|
||||||
import test from "node:test";
|
import test from "node:test";
|
||||||
|
|
||||||
|
import { upstreamRequestHeaders } from "./cloud-web-proxy.mjs";
|
||||||
import { cloudWebProxyRoutePolicy } from "./cloud-web-routes.mjs";
|
import { cloudWebProxyRoutePolicy } from "./cloud-web-routes.mjs";
|
||||||
import { proxyHttpRequest } from "./http.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 () => {
|
test("dev entrypoint proxy allows slow first response beyond legacy 4500ms", async () => {
|
||||||
const upstream = createServer((request, response) => {
|
const upstream = createServer((request, response) => {
|
||||||
request.resume();
|
request.resume();
|
||||||
|
|||||||
Reference in New Issue
Block a user