Add support for password hashes as an optional alternative to plaintext passwords

This commit is contained in:
Marcus Wichelmann 2022-08-08 13:27:51 +02:00
parent efbc36d61f
commit f646b0d140
No known key found for this signature in database
GPG key ID: D9FC1B92E557C80D
8 changed files with 67 additions and 10 deletions

View file

@ -102,7 +102,15 @@ func (o *JsonDB) Init() error {
if _, err := os.Stat(userPath); os.IsNotExist(err) {
user := new(model.User)
user.Username = util.LookupEnvOrString(util.UsernameEnvVar, util.DefaultUsername)
user.Password = util.LookupEnvOrString(util.PasswordEnvVar, util.DefaultPassword)
user.PasswordHash = util.LookupEnvOrString(util.PasswordHashEnvVar, "")
if user.PasswordHash == "" {
plaintext := util.LookupEnvOrString(util.PasswordEnvVar, util.DefaultPassword)
hash, err := util.HashPassword(plaintext)
if err != nil {
return err
}
user.PasswordHash = hash
}
o.conn.Write("server", "users", user)
}