Generate gateway token during onboard

This commit is contained in:
lpf
2026-03-06 17:53:01 +08:00
parent ad7316c9b6
commit 61c46fd710
4 changed files with 54 additions and 1 deletions

View File

@@ -44,6 +44,9 @@ func ensureConfigOnboard(configPath string, defaults *config.Config) (string, er
if defaults == nil {
return "", fmt.Errorf("defaults is nil")
}
if defaults.Gateway.Token == "" {
defaults.Gateway.Token = config.DefaultConfig().Gateway.Token
}
exists := true
if _, err := os.Stat(configPath); os.IsNotExist(err) {

View File

@@ -0,0 +1,31 @@
package main
import (
"testing"
"clawgo/pkg/config"
)
func TestEnsureConfigOnboardGeneratesGatewayToken(t *testing.T) {
t.Parallel()
configPath := t.TempDir() + "/config.json"
cfg := config.DefaultConfig()
cfg.Gateway.Token = ""
state, err := ensureConfigOnboard(configPath, cfg)
if err != nil {
t.Fatalf("ensureConfigOnboard failed: %v", err)
}
if state != "created" {
t.Fatalf("unexpected state: %s", state)
}
loaded, err := config.LoadConfig(configPath)
if err != nil {
t.Fatalf("load config failed: %v", err)
}
if loaded.Gateway.Token == "" {
t.Fatalf("expected gateway token to be generated")
}
}

View File

@@ -2,6 +2,8 @@ package config
import (
"bytes"
"crypto/rand"
"encoding/hex"
"encoding/json"
"fmt"
"io"
@@ -510,7 +512,7 @@ func DefaultConfig() *Config {
Gateway: GatewayConfig{
Host: "0.0.0.0",
Port: 18790,
Token: "",
Token: generateGatewayToken(),
},
Cron: CronConfig{
MinSleepSec: 1,
@@ -568,6 +570,14 @@ func DefaultConfig() *Config {
}
}
func generateGatewayToken() string {
var buf [16]byte
if _, err := rand.Read(buf[:]); err != nil {
return ""
}
return "cg_" + hex.EncodeToString(buf[:])
}
func LoadConfig(path string) (*Config, error) {
cfg := DefaultConfig()

View File

@@ -2,6 +2,15 @@ package config
import "testing"
func TestDefaultConfigGeneratesGatewayToken(t *testing.T) {
t.Parallel()
cfg := DefaultConfig()
if cfg.Gateway.Token == "" {
t.Fatalf("expected default gateway token")
}
}
func TestValidateSubagentsAllowsKnownPeers(t *testing.T) {
t.Parallel()