mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 04:21:38 +00:00
gateway: harden shared auth resolution across systemd, discord, and node host
This commit is contained in:
66
src/gateway/connection-auth.ts
Normal file
66
src/gateway/connection-auth.ts
Normal file
@@ -0,0 +1,66 @@
|
||||
import type { OpenClawConfig } from "../config/config.js";
|
||||
import type { ExplicitGatewayAuth } from "./call.js";
|
||||
import { resolveGatewayCredentialsWithSecretInputs } from "./call.js";
|
||||
import type {
|
||||
GatewayCredentialMode,
|
||||
GatewayCredentialPrecedence,
|
||||
GatewayRemoteCredentialFallback,
|
||||
GatewayRemoteCredentialPrecedence,
|
||||
} from "./credentials.js";
|
||||
import { resolveGatewayCredentialsFromConfig } from "./credentials.js";
|
||||
|
||||
export type GatewayConnectionAuthOptions = {
|
||||
config: OpenClawConfig;
|
||||
env?: NodeJS.ProcessEnv;
|
||||
explicitAuth?: ExplicitGatewayAuth;
|
||||
urlOverride?: string;
|
||||
urlOverrideSource?: "cli" | "env";
|
||||
modeOverride?: GatewayCredentialMode;
|
||||
includeLegacyEnv?: boolean;
|
||||
localTokenPrecedence?: GatewayCredentialPrecedence;
|
||||
localPasswordPrecedence?: GatewayCredentialPrecedence;
|
||||
remoteTokenPrecedence?: GatewayRemoteCredentialPrecedence;
|
||||
remotePasswordPrecedence?: GatewayRemoteCredentialPrecedence;
|
||||
remoteTokenFallback?: GatewayRemoteCredentialFallback;
|
||||
remotePasswordFallback?: GatewayRemoteCredentialFallback;
|
||||
};
|
||||
|
||||
export async function resolveGatewayConnectionAuth(
|
||||
params: GatewayConnectionAuthOptions,
|
||||
): Promise<{ token?: string; password?: string }> {
|
||||
return await resolveGatewayCredentialsWithSecretInputs({
|
||||
config: params.config,
|
||||
env: params.env,
|
||||
explicitAuth: params.explicitAuth,
|
||||
urlOverride: params.urlOverride,
|
||||
urlOverrideSource: params.urlOverrideSource,
|
||||
modeOverride: params.modeOverride,
|
||||
includeLegacyEnv: params.includeLegacyEnv,
|
||||
localTokenPrecedence: params.localTokenPrecedence,
|
||||
localPasswordPrecedence: params.localPasswordPrecedence,
|
||||
remoteTokenPrecedence: params.remoteTokenPrecedence,
|
||||
remotePasswordPrecedence: params.remotePasswordPrecedence,
|
||||
remoteTokenFallback: params.remoteTokenFallback,
|
||||
remotePasswordFallback: params.remotePasswordFallback,
|
||||
});
|
||||
}
|
||||
|
||||
export function resolveGatewayConnectionAuthFromConfig(
|
||||
params: Omit<GatewayConnectionAuthOptions, "config"> & { cfg: OpenClawConfig },
|
||||
): { token?: string; password?: string } {
|
||||
return resolveGatewayCredentialsFromConfig({
|
||||
cfg: params.cfg,
|
||||
env: params.env,
|
||||
explicitAuth: params.explicitAuth,
|
||||
urlOverride: params.urlOverride,
|
||||
urlOverrideSource: params.urlOverrideSource,
|
||||
modeOverride: params.modeOverride,
|
||||
includeLegacyEnv: params.includeLegacyEnv,
|
||||
localTokenPrecedence: params.localTokenPrecedence,
|
||||
localPasswordPrecedence: params.localPasswordPrecedence,
|
||||
remoteTokenPrecedence: params.remoteTokenPrecedence,
|
||||
remotePasswordPrecedence: params.remotePasswordPrecedence,
|
||||
remoteTokenFallback: params.remoteTokenFallback,
|
||||
remotePasswordFallback: params.remotePasswordFallback,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user