Skip to content

Commit

Permalink
feat(auth/ldap): allow passing the LDAP password via an env var (#18225)
Browse files Browse the repository at this point in the history
* feat(auth/ldap): allow passing the LDAP password via an environment variable when authenticating via the CLI

* chore(auth/ldap): add changelog entry for PR 18225
  • Loading branch information
f4z3r committed Feb 23, 2023
1 parent 7d52daf commit 0d3c0c0
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 8 deletions.
24 changes: 16 additions & 8 deletions builtin/credential/ldap/cli.go
Expand Up @@ -26,12 +26,15 @@ func (h *CLIHandler) Auth(c *api.Client, m map[string]string) (*api.Secret, erro
}
password, ok := m["password"]
if !ok {
fmt.Fprintf(os.Stderr, "Password (will be hidden): ")
var err error
password, err = pwd.Read(os.Stdin)
fmt.Fprintf(os.Stderr, "\n")
if err != nil {
return nil, err
password = passwordFromEnv()
if password == "" {
fmt.Fprintf(os.Stderr, "Password (will be hidden): ")
var err error
password, err = pwd.Read(os.Stdin)
fmt.Fprintf(os.Stderr, "\n")
if err != nil {
return nil, err
}
}
}

Expand Down Expand Up @@ -70,8 +73,9 @@ Usage: vault login -method=ldap [CONFIG K=V...]
Configuration:
password=<string>
LDAP password to use for authentication. If not provided, the CLI will
prompt for this on stdin.
LDAP password to use for authentication. If not provided, it will use
the VAULT_LDAP_PASSWORD environment variable. If this is not set, the
CLI will prompt for this on stdin.
username=<string>
LDAP username to use for authentication.
Expand All @@ -89,3 +93,7 @@ func usernameFromEnv() string {
}
return ""
}

func passwordFromEnv() string {
return os.Getenv("VAULT_LDAP_PASSWORD")
}
3 changes: 3 additions & 0 deletions changelog/18225.txt
@@ -0,0 +1,3 @@
```release-note:improvement
auth/ldap: allow providing the LDAP password via an env var when authenticating via the CLI
```

0 comments on commit 0d3c0c0

Please sign in to comment.