Fix some LDAP CA bundle handling
- Make PINNIPED_TEST_LDAP_LDAPS_CA_BUNDLE optional for integration tests - When there is no CA bundle provided, be careful to use nil instead of an empty bundle, because nil means to use the OS defaults
This commit is contained in:
parent
ddc632b99c
commit
6a350aa4e1
@ -124,8 +124,9 @@ func (p *Provider) dial(ctx context.Context) (Conn, error) {
|
|||||||
// Unfortunately, the go-ldap library does not seem to support dialing with a context.Context,
|
// Unfortunately, the go-ldap library does not seem to support dialing with a context.Context,
|
||||||
// so we implement it ourselves, heavily inspired by ldap.DialURL.
|
// so we implement it ourselves, heavily inspired by ldap.DialURL.
|
||||||
func (p *Provider) dialTLS(ctx context.Context, hostAndPort string) (Conn, error) {
|
func (p *Provider) dialTLS(ctx context.Context, hostAndPort string) (Conn, error) {
|
||||||
rootCAs := x509.NewCertPool()
|
var rootCAs *x509.CertPool
|
||||||
if p.c.CABundle != nil {
|
if p.c.CABundle != nil {
|
||||||
|
rootCAs = x509.NewCertPool()
|
||||||
if !rootCAs.AppendCertsFromPEM(p.c.CABundle) {
|
if !rootCAs.AppendCertsFromPEM(p.c.CABundle) {
|
||||||
return nil, ldap.NewError(ldap.ErrorNetwork, fmt.Errorf("could not parse CA bundle"))
|
return nil, ldap.NewError(ldap.ErrorNetwork, fmt.Errorf("could not parse CA bundle"))
|
||||||
}
|
}
|
||||||
|
@ -236,7 +236,7 @@ func loadEnvVars(t *testing.T, result *TestEnv) {
|
|||||||
|
|
||||||
result.SupervisorUpstreamLDAP = TestLDAPUpstream{
|
result.SupervisorUpstreamLDAP = TestLDAPUpstream{
|
||||||
Host: needEnv(t, "PINNIPED_TEST_LDAP_HOST"),
|
Host: needEnv(t, "PINNIPED_TEST_LDAP_HOST"),
|
||||||
CABundle: base64Decoded(t, needEnv(t, "PINNIPED_TEST_LDAP_LDAPS_CA_BUNDLE")),
|
CABundle: base64Decoded(t, os.Getenv("PINNIPED_TEST_LDAP_LDAPS_CA_BUNDLE")),
|
||||||
BindUsername: needEnv(t, "PINNIPED_TEST_LDAP_BIND_ACCOUNT_USERNAME"),
|
BindUsername: needEnv(t, "PINNIPED_TEST_LDAP_BIND_ACCOUNT_USERNAME"),
|
||||||
BindPassword: needEnv(t, "PINNIPED_TEST_LDAP_BIND_ACCOUNT_PASSWORD"),
|
BindPassword: needEnv(t, "PINNIPED_TEST_LDAP_BIND_ACCOUNT_PASSWORD"),
|
||||||
UserSearchBase: needEnv(t, "PINNIPED_TEST_LDAP_USERS_SEARCH_BASE"),
|
UserSearchBase: needEnv(t, "PINNIPED_TEST_LDAP_USERS_SEARCH_BASE"),
|
||||||
|
Loading…
Reference in New Issue
Block a user