hash pin and password

This commit is contained in:
pascal
2026-02-11 11:48:15 +01:00
parent 5ae15b3af3
commit cfe6753349
3 changed files with 74 additions and 3 deletions

View File

@@ -10,6 +10,7 @@ import (
"github.com/rs/xid"
log "github.com/sirupsen/logrus"
"golang.org/x/crypto/bcrypt"
"github.com/netbirdio/netbird/util/crypt"
@@ -75,6 +76,35 @@ type AuthConfig struct {
BearerAuth *BearerAuthConfig `json:"bearer_auth,omitempty" gorm:"serializer:json"`
}
func (a *AuthConfig) HashSecrets() error {
if a.PasswordAuth != nil && a.PasswordAuth.Enabled && a.PasswordAuth.Password != "" {
hash, err := bcrypt.GenerateFromPassword([]byte(a.PasswordAuth.Password), 12)
if err != nil {
return err
}
a.PasswordAuth.Password = string(hash)
}
if a.PinAuth != nil && a.PinAuth.Enabled && a.PinAuth.Pin != "" {
hash, err := bcrypt.GenerateFromPassword([]byte(a.PinAuth.Pin), 12)
if err != nil {
return err
}
a.PinAuth.Pin = string(hash)
}
return nil
}
func (a *AuthConfig) ClearSecrets() {
if a.PasswordAuth != nil {
a.PasswordAuth.Password = ""
}
if a.PinAuth != nil {
a.PinAuth.Pin = ""
}
}
type OIDCValidationConfig struct {
Issuer string
Audiences []string
@@ -133,6 +163,8 @@ func (r *ReverseProxy) InitNewRecord() {
}
func (r *ReverseProxy) ToAPIResponse() *api.ReverseProxy {
r.Auth.ClearSecrets()
authConfig := api.ReverseProxyAuthConfig{}
if r.Auth.PasswordAuth != nil {