ferry/pkg/ldap/connection.go

51 lines
838 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"))
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
}
if viper.GetBool("settings.ldap.tls") {
err = conn.StartTLS(&tls.Config{
InsecureSkipVerify: true,
})
if err != nil {
err = errors.New(fmt.Sprintf("升级到加密方式失败,%v", err))
logger.Error(err)
return
}
}
2020-08-16 23:16:02 +08:00
//设置超时时间
2020-08-18 00:53:02 +08:00
conn.SetTimeout(5 * time.Second)
2020-08-16 23:16:02 +08:00
return
}