fix(ldap): another fix for ldap and empty bindDN and bind password, #2339

This commit is contained in:
Torkel Ödegaard 2015-08-05 16:34:39 +02:00
parent 9dc779927b
commit f62d743407

View File

@ -14,8 +14,9 @@ import (
)
type ldapAuther struct {
server *LdapServerConf
conn *ldap.Conn
server *LdapServerConf
conn *ldap.Conn
requireSecondBind bool
}
func NewLdapAuthenticator(server *LdapServerConf) *ldapAuther {
@ -58,7 +59,7 @@ func (a *ldapAuther) login(query *LoginUserQuery) error {
}
// check if a second user bind is needed
if a.server.BindPassword != "" {
if a.requireSecondBind {
if err := a.secondBind(ldapUser, query.Password); err != nil {
return err
}
@ -204,8 +205,9 @@ func (a *ldapAuther) secondBind(ldapUser *ldapUserInfo, userPassword string) err
}
func (a *ldapAuther) initialBind(username, userPassword string) error {
if a.server.BindPassword != "" {
if a.server.BindPassword != "" || a.server.BindDN == "" {
userPassword = a.server.BindPassword
a.requireSecondBind = true
}
bindPath := a.server.BindDN