Persist a per-install JWT signing secret instead of a compiled-in default.
Format / gofmt (push) Successful in 8s
Format / gofmt (pull_request) Successful in 9s
CI / Build (push) Successful in 24s
CI / Build (pull_request) Successful in 25s
CI / Go Tests (pull_request) Successful in 39s
CI / Go Tests (push) Successful in 40s

Admin tokens were forgeable whenever JWT_SECRET was unset. Prefer the env var, otherwise write a random key to data/.jwt_secret.
This commit is contained in:
s1d3sw1ped_bot
2026-08-31 23:55:34 +00:00
parent 466d69c44c
commit 22844a2a67
6 changed files with 106 additions and 7 deletions
+5 -1
View File
@@ -45,7 +45,11 @@ func run(ctx context.Context) error {
eng.ReloadFromStore()
cm := certificate.NewManager(st)
jwtMgr := auth.NewJWTManager(os.Getenv("JWT_SECRET"))
jwtSecret, err := auth.LoadOrCreateSecret(config.DataDir())
if err != nil {
return err
}
jwtMgr := auth.NewJWTManager(jwtSecret)
go startRenewalLoop(ctx, cm, eng)