-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VAULT 18227/introduce cap ldap library #22185
Changes from 9 commits
be83f12
75b1b9c
c6cd37f
b391c03
c7203fd
011a850
11af2cd
c4f3530
e85b139
cc3b46d
2bbc7b2
1449774
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||
---|---|---|---|---|
|
@@ -8,6 +8,7 @@ | |||
"fmt" | ||||
"strings" | ||||
|
||||
"github.com/hashicorp/cap/ldap" | ||||
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests / test-go (1)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests / test-go (6)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests / test-go (6)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests with data race detection / test-go (1)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests with data race detection / test-go (1)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests with data race detection / test-go (1)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests tagged with testonly / test-go (0)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests tagged with testonly / test-go (0)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests tagged with testonly / test-go (0)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests tagged with testonly / test-go (0)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests with data race detection / test-go (6)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests with data race detection / test-go (6)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests / test-go (12)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests / test-go (12)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests with data race detection / test-go (12)
Check failure on line 11 in builtin/credential/ldap/backend.go GitHub Actions / Run Go tests with data race detection / test-go (12)
|
||||
"github.com/hashicorp/go-secure-stdlib/strutil" | ||||
|
||||
"github.com/hashicorp/vault/sdk/framework" | ||||
|
@@ -76,82 +77,25 @@ | |||
return "", nil, logical.ErrorResponse("password cannot be of zero length when passwordless binds are being denied"), nil, nil | ||||
} | ||||
|
||||
ldapClient := ldaputil.Client{ | ||||
Logger: b.Logger(), | ||||
LDAP: ldaputil.NewLDAP(), | ||||
} | ||||
|
||||
c, err := ldapClient.DialLDAP(cfg.ConfigEntry) | ||||
ldapClient, err := ldap.NewClient(ctx, ldaputil.ConvertConfig(cfg.ConfigEntry)) | ||||
if err != nil { | ||||
return "", nil, logical.ErrorResponse(err.Error()), nil, nil | ||||
} | ||||
if c == nil { | ||||
return "", nil, logical.ErrorResponse("invalid connection returned from LDAP dial"), nil, nil | ||||
} | ||||
|
||||
// Clean connection | ||||
defer c.Close() | ||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. All of the code deleted below is implemented via the We do need to specify options to also get |
||||
|
||||
userBindDN, err := ldapClient.GetUserBindDN(cfg.ConfigEntry, c, username) | ||||
if err != nil { | ||||
if b.Logger().IsDebug() { | ||||
b.Logger().Debug("error getting user bind DN", "error", err) | ||||
} | ||||
return "", nil, logical.ErrorResponse(errUserBindFailed), nil, logical.ErrInvalidCredentials | ||||
} | ||||
|
||||
if b.Logger().IsDebug() { | ||||
b.Logger().Debug("user binddn fetched", "username", username, "binddn", userBindDN) | ||||
} | ||||
|
||||
// Try to bind as the login user. This is where the actual authentication takes place. | ||||
if len(password) > 0 { | ||||
err = c.Bind(userBindDN, password) | ||||
} else { | ||||
err = c.UnauthenticatedBind(userBindDN) | ||||
} | ||||
if err != nil { | ||||
if b.Logger().IsDebug() { | ||||
b.Logger().Debug("ldap bind failed", "error", err) | ||||
} | ||||
return "", nil, logical.ErrorResponse(errUserBindFailed), nil, logical.ErrInvalidCredentials | ||||
} | ||||
defer ldapClient.Close(ctx) | ||||
|
||||
// We re-bind to the BindDN if it's defined because we assume | ||||
// the BindDN should be the one to search, not the user logging in. | ||||
if cfg.BindDN != "" && cfg.BindPassword != "" { | ||||
if err := c.Bind(cfg.BindDN, cfg.BindPassword); err != nil { | ||||
if b.Logger().IsDebug() { | ||||
b.Logger().Debug("error while attempting to re-bind with the BindDN User", "error", err) | ||||
} | ||||
return "", nil, logical.ErrorResponse("ldap operation failed: failed to re-bind with the BindDN user"), nil, logical.ErrInvalidCredentials | ||||
} | ||||
if b.Logger().IsDebug() { | ||||
b.Logger().Debug("re-bound to original binddn") | ||||
} | ||||
} | ||||
|
||||
userDN, err := ldapClient.GetUserDN(cfg.ConfigEntry, c, userBindDN, username) | ||||
c, err := ldapClient.Authenticate(ctx, username, password, ldap.WithGroups(), ldap.WithUserAttributes()) | ||||
if err != nil { | ||||
return "", nil, logical.ErrorResponse(err.Error()), nil, nil | ||||
} | ||||
|
||||
if cfg.AnonymousGroupSearch { | ||||
c, err = ldapClient.DialLDAP(cfg.ConfigEntry) | ||||
if err != nil { | ||||
return "", nil, logical.ErrorResponse("ldap operation failed: failed to connect to LDAP server"), nil, nil | ||||
if strings.Contains(err.Error(), "discovery of user bind DN failed") || | ||||
strings.Contains(err.Error(), "unable to bind user") { | ||||
Comment on lines
+90
to
+91
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. A little manual, as the |
||||
return "", nil, logical.ErrorResponse(errUserBindFailed), nil, logical.ErrInvalidCredentials | ||||
} | ||||
defer c.Close() // Defer closing of this connection as the deferal above closes the other defined connection | ||||
} | ||||
|
||||
ldapGroups, err := ldapClient.GetLdapGroups(cfg.ConfigEntry, c, userDN, username) | ||||
if err != nil { | ||||
return "", nil, logical.ErrorResponse(err.Error()), nil, nil | ||||
} | ||||
if b.Logger().IsDebug() { | ||||
b.Logger().Debug("groups fetched from server", "num_server_groups", len(ldapGroups), "server_groups", ldapGroups) | ||||
} | ||||
|
||||
ldapGroups := c.Groups | ||||
ldapResponse := &logical.Response{ | ||||
Data: map[string]interface{}{}, | ||||
} | ||||
|
@@ -162,6 +106,10 @@ | |||
ldapResponse.AddWarning(errString) | ||||
} | ||||
|
||||
for _, warning := range c.Warnings { | ||||
ldapResponse.AddWarning(string(warning)) | ||||
} | ||||
|
||||
var allGroups []string | ||||
canonicalUsername := username | ||||
cs := *cfg.CaseSensitiveNames | ||||
|
@@ -206,13 +154,11 @@ | |||
return username, policies, ldapResponse, allGroups, nil | ||||
} | ||||
|
||||
entityAliasAttribute, err := ldapClient.GetUserAliasAttributeValue(cfg.ConfigEntry, c, username) | ||||
if err != nil { | ||||
return "", nil, logical.ErrorResponse(err.Error()), nil, nil | ||||
} | ||||
if entityAliasAttribute == "" { | ||||
Comment on lines
-209
to
-213
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The implementation of this can be found here. I believe it boils down to finding the 'CN' (common name) attribute. |
||||
userAttrValues := c.UserAttributes[cfg.UserAttr] | ||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. UUIC There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah it seems like the cap/ldap implementation doesn't apply the But based on the existing client, vault/sdk/helper/ldaputil/client.go Line 149 in be83f12
cfg.UserAttr as well.
|
||||
if len(userAttrValues) == 0 { | ||||
return "", nil, logical.ErrorResponse("missing entity alias attribute value"), nil, nil | ||||
} | ||||
entityAliasAttribute := userAttrValues[0] | ||||
|
||||
return entityAliasAttribute, policies, ldapResponse, allGroups, nil | ||||
} | ||||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
```release-note:improvement | ||
auth/ldap: introduce cap/ldap.Client for LDAP authentication | ||
auth/ldap: deprecates `connection_timeout` in favor of `request_timeout` for timeouts | ||
sdk/ldaputil: deprecates Client in favor of cap/ldap.Client | ||
``` |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,21 +6,15 @@ package ldap | |
import ( | ||
"context" | ||
"fmt" | ||
"runtime" | ||
"strings" | ||
"testing" | ||
|
||
hclog "github.com/hashicorp/go-hclog" | ||
"github.com/hashicorp/cap/ldap" | ||
|
||
"github.com/hashicorp/vault/sdk/helper/docker" | ||
"github.com/hashicorp/vault/sdk/helper/ldaputil" | ||
) | ||
|
||
func PrepareTestContainer(t *testing.T, version string) (cleanup func(), cfg *ldaputil.ConfigEntry) { | ||
// Skipping on ARM, as this image can't run on ARM architecture | ||
if strings.Contains(runtime.GOARCH, "arm") { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I was able to run these tests locally on my Mac M1, but if this causes test failures I'll revert these changes. |
||
t.Skip("Skipping, as this image is not supported on ARM architectures") | ||
} | ||
|
||
runner, err := docker.NewServiceRunner(docker.RunOptions{ | ||
// Currently set to "michelvocks" until https://github.com/rroemhild/docker-test-openldap/pull/14 | ||
// has been merged. | ||
|
@@ -48,19 +42,16 @@ func PrepareTestContainer(t *testing.T, version string) (cleanup func(), cfg *ld | |
svc, err := runner.StartService(context.Background(), func(ctx context.Context, host string, port int) (docker.ServiceConfig, error) { | ||
connURL := fmt.Sprintf("ldap://%s:%d", host, port) | ||
cfg.Url = connURL | ||
logger := hclog.New(nil) | ||
client := ldaputil.Client{ | ||
LDAP: ldaputil.NewLDAP(), | ||
Logger: logger, | ||
} | ||
|
||
conn, err := client.DialLDAP(cfg) | ||
client, err := ldap.NewClient(ctx, ldaputil.ConvertConfig(cfg)) | ||
if err != nil { | ||
return nil, err | ||
} | ||
defer conn.Close() | ||
|
||
if _, err := client.GetUserBindDN(cfg, conn, "Philip J. Fry"); err != nil { | ||
defer client.Close(ctx) | ||
|
||
_, err = client.Authenticate(ctx, "Philip J. Fry", "fry") | ||
if err != nil { | ||
return nil, err | ||
} | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,12 +18,13 @@ | |
"text/template" | ||
"time" | ||
|
||
"github.com/go-ldap/ldap/v3" | ||
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-matrix
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-matrix
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Linux (linux, 386) / Vault linux 386 v1.16.0-beta1
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-matrix
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (1)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (10)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (10)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (10)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (14)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (14)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (14)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests tagged with testonly / test-go (1)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests tagged with testonly / test-go (1)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests tagged with testonly / test-go (1)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests tagged with testonly / test-go (1)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests tagged with testonly / test-go (1)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (0)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (0)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (0)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (8)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (8)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (8)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (6)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (6)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (6)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (7)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (7)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (7)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (5)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (5)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (5)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (2)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (2)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (2)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (4)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (4)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (4)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (0)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (0)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (0)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (10)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (10)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (10)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (2)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (2)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (2)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (1)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests tagged with testonly / test-go (0)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (14)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (14)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (14)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Darwin (darwin, amd64) / Vault darwin amd64 v1.16.0-beta1
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (5)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (5)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (5)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Other (openbsd, amd64) / Vault openbsd amd64 v1.16.0-beta1
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Other (netbsd, 386) / Vault netbsd 386 v1.16.0-beta1
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Other (openbsd, 386) / Vault openbsd 386 v1.16.0-beta1
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Other (freebsd, 386) / Vault freebsd 386 v1.16.0-beta1
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (16)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (16)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Other (freebsd, amd64) / Vault freebsd amd64 v1.16.0-beta1
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (6)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (6)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (6)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Other (windows, 386) / Vault windows 386 v1.16.0-beta1
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Other (windows, amd64) / Vault windows amd64 v1.16.0-beta1
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Other (openbsd, arm) / Vault openbsd arm v1.16.0-beta1
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Other (freebsd, arm) / Vault freebsd arm v1.16.0-beta1
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (4)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Other (netbsd, arm) / Vault netbsd arm v1.16.0-beta1
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (4)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (4)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Code checks
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (8)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (8)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (8)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (15)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (7)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (7)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (7)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (15)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (13)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (13)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (13)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (12)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (12)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (12)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (11)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (11)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (11)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (11)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (11)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (12)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (12)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (12)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (9)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (11)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (11)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (11)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (11)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (11)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (13)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (13)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (13)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (13)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests / test-go (3)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (3)
Check failure on line 21 in sdk/helper/ldaputil/client.go GitHub Actions / Run Go tests with data race detection / test-go (9)
|
||
hclog "github.com/hashicorp/go-hclog" | ||
multierror "github.com/hashicorp/go-multierror" | ||
"github.com/hashicorp/go-secure-stdlib/tlsutil" | ||
) | ||
|
||
// Deprecated: Use ldap.Client instead | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm thinking we'll want to leave this as not deprecated. It's still used in a couple of different plugins (openldap example) for secrets engine use cases. I don't think cap/ldap will ever replace the usage given that it's targeted at authentication. |
||
type Client struct { | ||
Logger hclog.Logger | ||
LDAP LDAP | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,7 +14,7 @@ import ( | |
// but through an interface. | ||
type Connection interface { | ||
Bind(username, password string) error | ||
Close() | ||
Close() error | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Changed as a result of updating the |
||
Add(addRequest *ldap.AddRequest) error | ||
Modify(modifyRequest *ldap.ModifyRequest) error | ||
Del(delRequest *ldap.DelRequest) error | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -53,9 +53,6 @@ to search and change entry passwords in LDAP. | |
string for authentication. The constructed UPN will appear as `[binddn]@[upndomain]`. For | ||
example, if `upndomain=example.com` and `binddn=admin`, the UPN string `admin@example.com` | ||
will be used to log in to Active Directory. | ||
- `connection_timeout` `(integer: 30 or string: "30s")` - Timeout, in seconds, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Moved to |
||
when attempting to connect to the LDAP server before trying the next URL in | ||
the configuration. | ||
- `request_timeout` `(integer: 90, string: "90s" <optional>)` - Timeout, in seconds, for the connection when | ||
making requests against the server before returning back an error. | ||
- `starttls` `(bool: <optional>)` - If true, issues a `StartTLS` command after establishing an unencrypted connection. | ||
|
@@ -71,6 +68,10 @@ to search and change entry passwords in LDAP. | |
|
||
- `length` `(int: 64)` - The length of generated password strings. Note: some schemas may require shorter | ||
password lengths (such as `racf`). Mutually exclusive with `password_policy` | ||
- `connection_timeout` `(integer: 30 or string: "30s")` - Timeout, in seconds, | ||
when attempting to connect to the LDAP server before trying the next URL in | ||
the configuration. Note: Use request_timeout instead. When both `connection_timeout` and `request_timeout` are set, | ||
the smaller value will be used for both connection and request timeouts. | ||
raymonstah marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
**Note about password generation**: | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👋🏼