fix: send raw openclaw gateway auth token

This commit is contained in:
Haitao Pan 2026-05-03 20:41:56 +08:00
parent 4b9bc29ad7
commit 75cd5fe051
3 changed files with 18 additions and 2 deletions

View File

@ -53,13 +53,17 @@ func resolveURL(yamlVal string, envKeys ...string) string {
}
func bridgeUpstreamAuthorizationHeader() string {
token := strings.TrimSpace(shared.EnvOrDefault("BRIDGE_AUTH_TOKEN", ""))
token := bridgeSharedAuthToken()
if token != "" && !strings.HasPrefix(strings.ToLower(token), "bearer ") {
return "Bearer " + token
}
return token
}
func bridgeSharedAuthToken() string {
return strings.TrimSpace(shared.EnvOrDefault("BRIDGE_AUTH_TOKEN", ""))
}
func newProductionProviderCatalog() (*BridgeConfig, map[string]syncedProvider, []string) {
config := loadBridgeConfig()
authorizationHeader := bridgeUpstreamAuthorizationHeader()

View File

@ -133,7 +133,7 @@ func applyProductionGatewayRouting(
Port: port,
TLS: tls,
}
request.Auth.Token = strings.TrimSpace(bridgeUpstreamAuthorizationHeader())
request.Auth.Token = bridgeSharedAuthToken()
request.Auth.Password = ""
request.ConnectAuthMode = "shared-token"
request.ConnectAuthFields = []string{"token"}

View File

@ -643,6 +643,18 @@ func newAcpFakeOpenClawGateway(t *testing.T) *acpFakeOpenClawGateway {
})
return
}
if got, want := shared.StringArg(shared.AsMap(params["auth"]), "token", ""), os.Getenv("BRIDGE_AUTH_TOKEN"); got != want {
_ = conn.WriteJSON(map[string]any{
"type": "res",
"id": id,
"ok": false,
"error": map[string]any{
"code": "INVALID_REQUEST",
"message": "unauthorized: gateway token mismatch",
},
})
return
}
fake.lastConnectClient.Store(shared.AsMap(params["client"]))
_ = conn.WriteJSON(map[string]any{
"type": "res",