provider: support for username and password file (#1455)
Signed-off-by: patrickap <patrick.schlageter@web.de>
This commit is contained in:
parent
62854e4802
commit
a91cf22e0f
2 changed files with 22 additions and 0 deletions
|
@ -327,7 +327,9 @@ func Init() {
|
|||
Host: "",
|
||||
Port: 0,
|
||||
Username: "",
|
||||
UsernameFile: "",
|
||||
Password: "",
|
||||
PasswordFile: "",
|
||||
ConnectionString: "",
|
||||
SQLTablesPrefix: "",
|
||||
SSLMode: 0,
|
||||
|
@ -2067,7 +2069,9 @@ func setViperDefaults() {
|
|||
viper.SetDefault("data_provider.host", globalConf.ProviderConf.Host)
|
||||
viper.SetDefault("data_provider.port", globalConf.ProviderConf.Port)
|
||||
viper.SetDefault("data_provider.username", globalConf.ProviderConf.Username)
|
||||
viper.SetDefault("data_provider.username_file", globalConf.ProviderConf.UsernameFile)
|
||||
viper.SetDefault("data_provider.password", globalConf.ProviderConf.Password)
|
||||
viper.SetDefault("data_provider.password_file", globalConf.ProviderConf.PasswordFile)
|
||||
viper.SetDefault("data_provider.sslmode", globalConf.ProviderConf.SSLMode)
|
||||
viper.SetDefault("data_provider.disable_sni", globalConf.ProviderConf.DisableSNI)
|
||||
viper.SetDefault("data_provider.target_session_attrs", globalConf.ProviderConf.TargetSessionAttrs)
|
||||
|
|
|
@ -355,8 +355,10 @@ type Config struct {
|
|||
Port int `json:"port" mapstructure:"port"`
|
||||
// Database username
|
||||
Username string `json:"username" mapstructure:"username"`
|
||||
UsernameFile string `json:"username_file" mapstructure:"username_file"`
|
||||
// Database password
|
||||
Password string `json:"password" mapstructure:"password"`
|
||||
PasswordFile string `json:"password_file" mapstructure:"password_file"`
|
||||
// Used for drivers mysql and postgresql.
|
||||
// 0 disable SSL/TLS connections.
|
||||
// 1 require ssl.
|
||||
|
@ -875,6 +877,22 @@ func Initialize(cnf Config, basePath string, checkAdmins bool) error {
|
|||
config.Actions.ExecuteOn = util.RemoveDuplicates(config.Actions.ExecuteOn, true)
|
||||
config.Actions.ExecuteFor = util.RemoveDuplicates(config.Actions.ExecuteFor, true)
|
||||
|
||||
if config.Username == "" && config.UsernameFile != "" {
|
||||
user, err := os.ReadFile(config.UsernameFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
config.Username = string(user)
|
||||
}
|
||||
|
||||
if config.Password == "" && config.PasswordFile != "" {
|
||||
password, err := os.ReadFile(config.PasswordFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
config.Password = string(password)
|
||||
}
|
||||
|
||||
cnf.BackupsPath = getConfigPath(cnf.BackupsPath, basePath)
|
||||
if cnf.BackupsPath == "" {
|
||||
return fmt.Errorf("required directory is invalid, backup path %q", cnf.BackupsPath)
|
||||
|
|
Loading…
Reference in a new issue