mirror of
https://github.com/bolkedebruin/rdpgw.git
synced 2025-08-14 12:53:47 +02:00
* Support for NTLM authentication added To support NTLM authentication, a database is added as an authentication source. Currently, only the configuration file is supported as a database. Database authentication supports Basic and NTLM authentication protcols. ServerConfig.BasicAuthEnabled renamed to LocalEnabled as Basic auth can be used with NTLM or Local.
42 lines
950 B
Go
42 lines
950 B
Go
package config
|
|
|
|
import (
|
|
"github.com/knadh/koanf/parsers/yaml"
|
|
"github.com/knadh/koanf/providers/confmap"
|
|
"github.com/knadh/koanf/providers/file"
|
|
"github.com/knadh/koanf/v2"
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
type Configuration struct {
|
|
Users []UserConfig `koanf:"users"`
|
|
}
|
|
|
|
type UserConfig struct {
|
|
Username string `koanf:"username"`
|
|
Password string `koanf:"password"`
|
|
}
|
|
|
|
var Conf Configuration
|
|
|
|
func Load(configFile string) Configuration {
|
|
|
|
var k = koanf.New(".")
|
|
|
|
k.Load(confmap.Provider(map[string]interface{}{}, "."), nil)
|
|
|
|
if _, err := os.Stat(configFile); os.IsNotExist(err) {
|
|
log.Printf("Config file %s not found, skipping config file", configFile)
|
|
} else {
|
|
if err := k.Load(file.Provider(configFile), yaml.Parser()); err != nil {
|
|
log.Fatalf("Error loading config from file: %v", err)
|
|
}
|
|
}
|
|
|
|
koanfTag := koanf.UnmarshalConf{Tag: "koanf"}
|
|
k.UnmarshalWithConf("Users", &Conf.Users, koanfTag)
|
|
|
|
return Conf
|
|
|
|
}
|