Revert "internal/config: Cache csrf secret"

This reverts commit dfb97405ed.
This commit is contained in:
Tom Wiesing 2023-11-20 13:33:57 +01:00
parent dfb97405ed
commit 50dc4f3a2e
No known key found for this signature in database

View file

@ -7,7 +7,6 @@ import (
"reflect" "reflect"
"time" "time"
"github.com/tkw1536/pkglib/lazy"
"github.com/tkw1536/pkglib/reflectx" "github.com/tkw1536/pkglib/reflectx"
"github.com/tkw1536/pkglib/yamlx" "github.com/tkw1536/pkglib/yamlx"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
@ -47,9 +46,6 @@ type Config struct {
// ConfigPath is the path this configuration was loaded from (if any) // ConfigPath is the path this configuration was loaded from (if any)
ConfigPath string `yaml:"-"` ConfigPath string `yaml:"-"`
// csrfSecret holds the cached csrf secret
csrfSecret lazy.Lazy[[]byte]
} }
func zeroSensitive(v reflect.Value) { func zeroSensitive(v reflect.Value) {
@ -117,17 +113,15 @@ func Marshal(config *Config, previous []byte) ([]byte, error) {
// CSRFSecret return the csrfSecret derived from the session secret // CSRFSecret return the csrfSecret derived from the session secret
func (config *Config) CSRFSecret() []byte { func (config *Config) CSRFSecret() []byte {
return config.csrfSecret.Get(func() []byte { // take the hash of the secret
// take the hash of the secret h := fnv.New32a()
h := fnv.New32a() h.Write([]byte(config.SessionSecret))
h.Write([]byte(config.SessionSecret))
// seed a random number generator // seed a random number generator
rand := rand.New(rand.NewSource(int64(h.Sum32()))) rand := rand.New(rand.NewSource(int64(h.Sum32())))
// take a bunch of bytes from it // take a bunch of bytes from it
secret := make([]byte, 32) secret := make([]byte, 32)
rand.Read(secret) rand.Read(secret)
return secret return secret
})
} }