diff --git a/README.md b/README.md index 9903c7f..868d27d 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,7 @@ QQ群:1127401830 其他: * everstar_l 10元 - +* 五色花 20元 ## License diff --git a/config/settings.dev.yml b/config/settings.dev.yml index 1765c9f..58fa2dc 100644 --- a/config/settings.dev.yml +++ b/config/settings.dev.yml @@ -38,6 +38,7 @@ settings: basedn: dc=fdevops,dc=com bindpwd: 123456 binduser: admin + bindbasedn: host: localhost port: 389 tls: 0 diff --git a/config/settings.yml b/config/settings.yml index ff82a45..a3a941b 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -42,6 +42,7 @@ settings: basedn: dc=fdevops,dc=com bindpwd: 123456 binduser: admin + bindbasedn: host: localhost port: 389 tls: 0 diff --git a/pkg/ldap/search.go b/pkg/ldap/search.go index ca0580f..2d26985 100644 --- a/pkg/ldap/search.go +++ b/pkg/ldap/search.go @@ -54,10 +54,14 @@ func searchRequest(username string) (userInfo *ldap.Entry, err error) { } // 用来获取查询权限的用户。如果 ldap 禁止了匿名查询,那我们就需要先用这个帐户 bind 以下才能开始查询 if !viper.GetBool("settings.ldap.anonymousQuery") { + dn := viper.GetString("settings.ldap.baseDn") + if viper.GetString("settings.ldap.bindBaseDn") != "" { + dn = viper.GetString("settings.ldap.bindBaseDn") + } err = conn.Bind( fmt.Sprintf("cn=%v,%v", viper.GetString("settings.ldap.bindUser"), - viper.GetString("settings.ldap.baseDn")), + dn), viper.GetString("settings.ldap.bindPwd")) if err != nil { logger.Error("用户或密码错误。", err)