tiny update
This commit is contained in:
@@ -4,6 +4,7 @@ import { timingSafeEqual } from "crypto";
|
||||
let warnedDisableAuthIgnored = false;
|
||||
let loggedAuthDisabledByEnv = false;
|
||||
let loggedAuthDisabledNoToken = false;
|
||||
let warnedLegacyQueryAuth = false;
|
||||
|
||||
function safeCompare(a: string, b: string): boolean {
|
||||
const bufA = Buffer.from(a);
|
||||
@@ -40,16 +41,23 @@ export function isAuthorizedAgentRequest(
|
||||
if (!token) {
|
||||
if (!loggedAuthDisabledNoToken) {
|
||||
loggedAuthDisabledNoToken = true;
|
||||
logger.info("[auth] Agent auth disabled");
|
||||
logger.error("[auth] Agent auth token is missing; agent requests will be rejected");
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
const headerToken = req.headers.get("x-agent-token");
|
||||
if (headerToken !== null && safeCompare(headerToken, token)) return true;
|
||||
|
||||
const legacyQuerySetting = String(process.env.OVERLORD_ALLOW_AGENT_TOKEN_QUERY || "").trim().toLowerCase();
|
||||
const allowLegacyQuery = legacyQuerySetting !== "false" && legacyQuerySetting !== "0";
|
||||
if (!allowLegacyQuery) return false;
|
||||
if (!warnedLegacyQueryAuth) {
|
||||
warnedLegacyQueryAuth = true;
|
||||
logger.warn("[auth] Legacy agent query-token authentication is enabled; URLs may leak credentials");
|
||||
}
|
||||
const queryToken = url.searchParams.get("token");
|
||||
const isAuthed =
|
||||
(headerToken !== null && safeCompare(headerToken, token)) ||
|
||||
(queryToken !== null && safeCompare(queryToken, token));
|
||||
const isAuthed = queryToken !== null && safeCompare(queryToken, token);
|
||||
|
||||
return isAuthed;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user