Persist a per-install JWT signing secret instead of a compiled-in default.
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:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user