瀏覽代碼

LDAP: multildap + ldap integration (#18588)

It seems `ldap` module introduced new error type of which
multildap module didn't know about.

This broke the multildap login logic

Fixes #18491
Ref #18587
Oleg Gaidarenko 6 年之前
父節點
當前提交
02af966964
共有 2 個文件被更改,包括 6 次插入3 次删除
  1. 4 1
      pkg/services/multildap/multildap.go
  2. 2 2
      pkg/services/multildap/multildap_test.go

+ 4 - 1
pkg/services/multildap/multildap.go

@@ -19,6 +19,9 @@ var newLDAP = ldap.New
 // ErrInvalidCredentials is returned if username and password do not match
 var ErrInvalidCredentials = ldap.ErrInvalidCredentials
 
+// ErrCouldNotFindUser is returned when username hasn't been found (not username+password)
+var ErrCouldNotFindUser = ldap.ErrCouldNotFindUser
+
 // ErrNoLDAPServers is returned when there is no LDAP servers specified
 var ErrNoLDAPServers = errors.New("No LDAP servers are configured")
 
@@ -76,7 +79,7 @@ func (multiples *MultiLDAP) Login(query *models.LoginUserQuery) (
 		}
 
 		// Continue if we couldn't find the user
-		if err == ErrInvalidCredentials {
+		if err == ErrCouldNotFindUser {
 			continue
 		}
 

+ 2 - 2
pkg/services/multildap/multildap_test.go

@@ -82,10 +82,10 @@ func TestMultiLDAP(t *testing.T) {
 				teardown()
 			})
 
-			Convey("Should still call a second error for invalid cred error", func() {
+			Convey("Should still call a second error for invalid not found error", func() {
 				mock := setup()
 
-				mock.loginErrReturn = ErrInvalidCredentials
+				mock.loginErrReturn = ErrCouldNotFindUser
 
 				multi := New([]*ldap.ServerConfig{
 					{}, {},