fix(gateway): support wildcard in controlUi.allowedOrigins for remote access (#31088)
* fix(gateway): support wildcard in controlUi.allowedOrigins for remote access * build: regenerate host env security policy swift --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
This commit is contained in:
@@ -36,6 +36,15 @@ describe("checkBrowserOrigin", () => {
|
||||
expect(result.ok).toBe(true);
|
||||
});
|
||||
|
||||
it("accepts wildcard allowedOrigins", () => {
|
||||
const result = checkBrowserOrigin({
|
||||
requestHost: "gateway.example.com:18789",
|
||||
origin: "https://any-origin.example.com",
|
||||
allowedOrigins: ["*"],
|
||||
});
|
||||
expect(result.ok).toBe(true);
|
||||
});
|
||||
|
||||
it("rejects missing origin", () => {
|
||||
const result = checkBrowserOrigin({
|
||||
requestHost: "gateway.example.com:18789",
|
||||
|
||||
@@ -32,10 +32,10 @@ export function checkBrowserOrigin(params: {
|
||||
return { ok: false, reason: "origin missing or invalid" };
|
||||
}
|
||||
|
||||
const allowlist = (params.allowedOrigins ?? [])
|
||||
.map((value) => value.trim().toLowerCase())
|
||||
.filter(Boolean);
|
||||
if (allowlist.includes(parsedOrigin.origin)) {
|
||||
const allowlist = new Set(
|
||||
(params.allowedOrigins ?? []).map((value) => value.trim().toLowerCase()).filter(Boolean),
|
||||
);
|
||||
if (allowlist.has("*") || allowlist.has(parsedOrigin.origin)) {
|
||||
return { ok: true };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user