ferry/pkg/ldap/connection.go

44 lines
756 B
Go
Raw Normal View History

2020-08-16 23:16:02 +08:00
package ldap
import (
"crypto/tls"
2020-08-18 00:53:02 +08:00
"errors"
2020-08-16 23:16:02 +08:00
"ferry/pkg/logger"
"fmt"
"time"
"github.com/spf13/viper"
"github.com/go-ldap/ldap/v3"
)
/*
@Author : lanyulei
*/
2020-08-18 00:53:02 +08:00
var conn *ldap.Conn
2020-08-16 23:16:02 +08:00
// ldap连接
2020-08-18 00:53:02 +08:00
func ldapConnection() (err error) {
2020-08-16 23:16:02 +08:00
var ldapConn = fmt.Sprintf("%v:%v", viper.GetString("settings.ldap.host"), viper.GetString("settings.ldap.port"))
if viper.GetBool("settings.ldap.tls") {
2020-11-04 13:39:22 +08:00
tlsConf := &tls.Config{
InsecureSkipVerify: true,
}
2020-11-04 13:39:22 +08:00
conn, err = ldap.DialTLS("tcp", ldapConn, tlsConf)
} else {
conn, err = ldap.Dial("tcp", ldapConn)
}
2020-08-16 23:16:02 +08:00
if err != nil {
2020-08-18 00:53:02 +08:00
err = errors.New(fmt.Sprintf("无法连接到ldap服务器%v", err))
logger.Error(err)
2020-08-16 23:16:02 +08:00
return
}
//设置超时时间
2020-08-18 00:53:02 +08:00
conn.SetTimeout(5 * time.Second)
2020-08-16 23:16:02 +08:00
return
}