ldap-1-backend/public/common/ldap.go

42 lines
956 B
Go

package common
import (
"fmt"
"net"
"time"
"github.com/eryajf-world/go-ldap-admin/config"
ldap "github.com/go-ldap/ldap/v3"
)
// 全局mysql数据库变量
var LDAP *ldap.Conn
// Init 初始化连接
func InitLDAP() {
// Dail有两个参数 network, address, 返回 (*Conn, error)
ldap, err := ldap.DialURL(config.Conf.Ldap.LdapUrl, ldap.DialWithDialer(&net.Dialer{Timeout: 5 * time.Second}))
if err != nil {
Log.Panicf("初始化ldap连接异常: %v", err)
panic(fmt.Errorf("初始化ldap连接异常: %v", err))
}
err = ldap.Bind(config.Conf.Ldap.LdapAdminDN, config.Conf.Ldap.LdapAdminPass)
if err != nil {
Log.Panicf("绑定admin账号异常: %v", err)
panic(fmt.Errorf("绑定admin账号异常: %v", err))
}
// 全局LDAP赋值
LDAP = ldap
// 隐藏密码
showDsn := fmt.Sprintf(
"%s:******@tcp(%s)",
config.Conf.Ldap.LdapAdminDN,
config.Conf.Ldap.LdapUrl,
)
Log.Info("初始化ldap完成! dsn: ", showDsn)
}